home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine CD 1995
/
Archive Magazine CD 1995.iso
/
text
/
magazine
/
volume_08
/
issue_11
< prev
next >
Wrap
Text File
|
1995-07-14
|
248KB
|
5,203 lines
Merlin Ray Tracer
8.11
Alex Card
8.11
Tracing its history
8.11
Way back in 1991, Arxe Systems demonstrated some fabulous pictures
produced on ‘Powershade’, but, sadly, the company folded and
‘Powershade’ disappeared without a trace. Nothing more was heard and it
seemed as if the ray-tracer had been lost forever. That was until last
year’s Acorn World Show at Wembley, where it was resurrected in the
guise of ‘Merlin’.
8.11
German programmer, Stefan Fröhling, spurred on by the lack of a quality
ray-tracing package for Acorn computers, used the Internet to track down
Roger Atrill, the tracer’s programmer and, after agreeing a contract,
Roger recommenced work on the trace routines after a two year absence.
Stefan is currently writing the 3D editor and Frank Föhl (of Magnetoids
fame) is helping with the display routines.
8.11
The package is approximately 1 month from completion, so this review is
based on an early version which, as yet, doesn’t contain all the planned
features and still has a few gremlins to be ironed out. Even at this
stage, Merlin is looking superb, and is set to fill the gap in the
market.
8.11
A little light relief
8.11
The basic idea behind ray-tracing is to produce photo-realistic images
by creating a 3-D scene, applying one or more light sources, and
specifying the types of material used. Intensive processing power and
heavyweight mathematical formulae are used to calculate the resultant
colour of each and every pixel, accounting for shadows, reflections,
refraction, transparency ... the list is almost endless. The emphasis is
on ‘intensive’ − this is a slow process by any standards, and many
factors affect the rate at which an image is created. The effort is
worth it though because, especially with 24-bit colour, the results can
be nothing short of stunning.
8.11
There have been a few ray-tracers released prior to Merlin, notably
Render Bender and Persistence Of Vision, but both are extremely
difficult to use, since they require a textual description of a scene to
be written in a kind of programming language. This has undoubtedly put
many people off the idea, which is a real shame. Merlin does away with
this drawback by having a 3D Editor that creates the script for you.
8.11
Go on, edit, my son
8.11
A wireframe scene is created within MerlinEd from a variety of
primitives. These are the building blocks such as spheres, cubes,
cylinders and cones. Since these are 3D objects, they can be displayed
from one of four viewpoints; front, right and top plans, plus full 3D.
Similarly, each primitive can be edited on a single plan so that, for
example, you can select a sphere shape and transform it into a disc,
ellipse or even a sausage, by adjusting width, length and breadth. Other
primitives are also available, including stars, decahedrons and
user-defined polygons. Any number of primitives can be combined to
produce more complex objects.
8.11
Having created an object, you may wish to introduce one or more planes
to the scene in order to simulate sky, sea, land or walls, floors and
ceilings. Planes are clicked into place and, by careful positioning of
objects, you can create the illusion of floating in air or sitting on
the surface.
8.11
Various tools are available from the well-set-out menu bar beneath the
editing window and via a parameter box which enable primitives to be
quickly modified. The Selection pointer allows single or groups of
primitives to be highlighted. Good use is made of the adjust button too,
with clicks, double-clicks and drags all having individual effects, such
as selection of all objects underneath a rectangular drag, or moving a
group to a new position.
8.11
Multicopy (unsurprisingly) allows object copying in a number of
pre-defined ways. Linear copies are performed by specifying the number
of copies required, the distance between them and the axis on which the
operation is to be performed. Similarly, trapezoidal, circular and
globular copies are available with adjustable angular and rotational
settings. To assist with positioning, there is a measuring facility
whereby you drag the required distance between copies on the edit window
and have it written into the multicopy menu, thus avoiding fiddling
about with coordinate values which could be wrong. The measure facility
can prove invaluable, since there’s unfortunately no ‘last operation
undo’ function and you’ll have to delete spurious objects manually. This
would not prove too much of a chore, however, because objects can either
be group-selected or picked via the very friendly List tool and a simple
press of ‘Delete’ will remove them. List also gives dimension
information and, on selecting a more complex primitive within List, a
submenu appears with its component parts.
8.11
Lines on a 3D object can be thickened. This is particularly effective
when used in conjunction with the ‘polygon to line’ attribute. What this
does is to remove the centres from facets, effectively turning a box
into a shell of its edges. By thickening each line, it is possible to
get some very pleasing effects. Remember when you used to make models
out of connected straws or pipe-cleaners as a child? No?... well, never
mind, here’s your chance!
8.11
Objects can also be mirrored, rotated and scaled, plus a number of other
interesting tools yet to be implemented, such as sweep, which will
rotate a line about an axis so it appears as a 3D bottle or glass, for
instance. I would have preferred a more ‘real-time’ rotate function. As
it is, a box outline appears and you drag the pointer, but the primitive
is not updated until <select> is released. The easiest way around this
is to start a rotation on a significant part of the object, e.g. the tip
of a cone rather than somewhere in the middle. There’s a neat zoom
facility too which has some preset values and includes a ‘view all’
option, whereby the program picks the optimum magnification to see all
the defined objects.
8.11
I found the editor extremely easy to use, even after only a short time.
It’s very well laid out and perhaps my only gripe is that there isn’t an
icon on the menu bar for the attribute settings, which include phong and
Gouraud shading, hidden lines and polygons into lines.
8.11
Living in a material world
8.11
One of the most powerful parts of MerlinEd is its use and design of
surface materials. An insignificant looking icon belies the importance
of this section. You can have the most amazing wireframe scene but,
unless you select or create materials and their properties carefully, it
can all end up as a disastrous mess.
8.11
A set of materials is supplied which can either be directly applied to
surfaces or edited and merged with others to produce further variants.
Materials are classified into textures such as wood, marble
and checkered, and each in turn can be modified in terms of spectral
range, scale and rotation of pattern. Two textures can be hybridised
into a new strain, possibly mimicking the appearance of slate or brick.
In order to get that authentic look, you’ll also need to choose suitable
values for transparency, reflection and refraction.
8.11
Once this process is complete, it’s time to render the material to see
if it meets your requirement. If it does, it can be added to the list
for future use. Materials are rendered as a standard sphere on a plane
of the same material, so you quickly get an idea of whether it’s going
to fit the bill or not, and can abort the operation if it doesn’t.
Alternatively, bitmap images can be applied to surfaces for some strange
effects. I particularly like the way that materials can be added and
deleted from the menu. Many programs would have left the user to hunt
through directories in order to find the ideal material for the job, but
MerlinEd lets you flick through a gallery of them at the click of a
button.
8.11
Ray − a drop of golden sun
8.11
Scenes must have at least one light source − they’d look pretty bleak
without it anyway − there are three to choose from: Point, Extended and
Directional. Point lights emit rays in all directions and produce
sharp-edged shadows, extended light covers an area in the same way as
floodlights do with fuzzy shadows, and directional could be a spotlight
or torch. White is the default colour for light, but you can choose
whatever you like, although black should be avoided, for obvious
reasons! Up to 256 light sources can be specified, but be warned that
the more you have, the greater the time to render. Mist and fog can be
added to the scene for that touch of haze or to turn it into a
pea-souper of a day.
8.11
A shot in the dark?
8.11
The final part of MerlinEd is the camera. The scene can be rendered from
any position or angle, so this must be set on the three planes by
dragging and rotating the camera icon. Field of vision and focal range
can be adjusted to suit too − it’s worth taking your time at this point
to ensure that you get the best out of your scene. What might look great
from one position could look as flat as a pancake from another.
8.11
Import(ant) info
8.11
OK, so you’re thinking that all this sounds very well, but I’m never
going to be able to create the image I really want, a nice dinosaur or a
realistic looking left foot for my Monty Python scene. All is not lost,
however, as MerlinEd accepts the import of not only drawfiles but also
DXF wireframe files, as used in over fifty art/CAD packages on many
systems. These are available from Viewpoint Datalabs on 01784-451815,
although they are really for professional artists, scientists, film
makers and advertisers, and so don’t come cheap − it’s a case of pay by
the polygon! Handling of DXF files is slow, due to the sheer amount of
detail − many of those on offer have polygons by the tens of thousands.
8.11
The magic of Merlin
8.11
The hard part’s over by now, and we have a wireframe world and a script
file. It’s the tracer’s turn to cast its spell and render the scene in
all its glory. The Merlin Environment sets up final adjustments; how it
is to be traced, its resolution, special effects, save format and
various other options such as screen blanking, multi- or single-tasking,
report output and inclusion/omission of shadows, reflection, etc.
8.11
As with other ray-tracers, it is strongly recommended that a small
preview is first performed in order to ensure that all is well. This can
be done in multipass mode so that an impression of the whole scene is
given more quickly than the superior scanline mode, which works from the
top downwards but may not provide much information as to the final
appearance until well into the process. If all is satisfactory, larger
resolutions can be attempted with confidence.
8.11
Complex images are likely to take many hours (even days) to complete,
but there are a number of factors that will improve the speed. Of
course, the faster the processor the better − ARM3 is probably the
minimum requirement unless you’re very patient, and a StrongARM would be
more than welcome! Memory is another factor and an FPA unit will help
dramatically. Support for this will be included, either in the full
release version or shortly afterwards to those who register. If
possible, switch to single-tasking mode, avoid displaying the image, and
be sure to blank the screen for final rendering, then go away from your
computer and have a nice cup of tea. When Merlin has finished, you’ll
find a fantastic sprite and/or RGB file, a report on what has been
achieved and how long the render took − ample reward for your patience.
8.11
The Merlin icon itself is brilliant and contains a small, informative
window of what Merlin is currently doing; an hourglass when checking a
script file, Zed’s when a render has been suspended and, more commonly,
a figure representing percentage of the trace completed. Great stuff.
8.11
Merlin − on reflection
8.11
Merlin is by far the most powerful ray-tracing package available for
Acorn computers. There are so many features within the program that I
haven’t even touched upon phong and Gouraud shading, jittered and
adaptive anti-aliasing. This I hope to do in an update article, along
with any other new enhancements to the full release.
8.11
The 3D editor is excellent when compared to writing your own script. It
can be viewed and modified in !Edit if you wish, and you’ll soon realise
how much time you’ve saved by creating the scene graphically rather than
in text form. The results speak for themselves and even if your computer
cannot display 24-bit colour, it can still produce 24bit files which
can be printed on a suitable printer or stored until later, when you may
decide to upgrade.
8.11
One significant omission is an animation option, but this is pencilled
in for Merlin 2. Whether this is ever forthcoming is wholly dependent on
how well release 1 sells! A great deal of effort has gone into both the
editor and the tracer and, even after a few days, I feel right at home
with it.
8.11
For professional graphic artists and keen amateurs, Merlin is an
absolute must. At £100 + VAT it’s far cheaper than similar packages on
other formats. Occasional dabblers and complete newcomers may be
deterred by the price, so I’d recommend you get hold of Persistence Of
Vision (the PD ray-tracer), try out some of the example files and see if
you get hooked. Write your own script file, then forget it and rush out
and buy Merlin!
8.11
The Engineer Coughs!
8.11
Ray Maidstone
8.11
Dust
8.11
The most frequently used piece of equipment in our workshop these days
is the vacuum cleaner! There are many computer owners seemingly unaware
of one of their biggest enemies... dust. It is possible to overcome some
of the problem merely by placing the computer in a good human
environment − if you wouldn’t like to live in it, neither would the
computer! However, it’s not just dust that causes a problem. We have had
to remove contaminants such as spray furniture polish, talcum powder and
nicotine. All of these can fill up filters and clog drive heads, render
connectors unconnected and stop switches from switching!
8.11
Heat
8.11
In these days of bigger upgrades and higher clock speeds, another
problem rearing its ugly head is that of heat. (This is especially
relevant now that so many Risc PC owners are thinking of adding a 4P8C6
central heating system! Ed.) Always have a schedule for cleaning
filters, especially if they’re made of the black material which is
easily blocked. Keep your computer away from sunny windows if possible.
This also applies to monitors, as they are already warm enough inside
without having the problem compounded by baking under the sun. Whoops...
there goes another line output transformer!
8.11
In the good old days, when A310s were young, I did extensive research
into heat, airflow and design inside the computer. Some problems were
solved by slowing the fan down slightly, because filters became rapidly
dust clogged when air was rammed through them too quickly.
8.11
The A5000 and A4000 have been out in the field long enough now to be
showing signs of similar problems. Firstly, the fan is pushing air the
wrong way! Secondly, the fan has no filter. Thirdly, it’s all going too
fast!
8.11
Perhaps I should simply keep quiet about this, because our workshops
always have a steady supply of dust-afflicted machines. (Yes! Ray does
sell a gadget for slowing down fan speed to make it work more
effectively, and also a much better grade of filter material, but he
makes more money out of doing repairs! Ed.) The setup should be: filter
on the outside... fan sucking air in from outside... fan speed not too
high... no excessive metalwork shrouding hard drives... keep machines
away from heat. All this being considered... “Have a nice day!”
8.11
IDE fun
8.11
A frequently heard comment is, “My IDE SyQuest doesn’t run with my other
drive.” Unfortunately, there isn’t one nice clean, clear IDE standard.
In the same way that no computer manufacturers seem to use similar
connectors (hence the vast number of people buying adaptors from one
make to another), IDE interconnection is equally diverse. Drives send
different signals down the line causing odd reflections, they have
different timing characteristics and different windows to sense
master/slave information. No, there isn’t a book on this, as far as I
know, but by now, I might well be able to write one! Suffice it to say
that, having helped a number of people out, I would say that the
important things to get right are length of cable, the link settings and
the positioning of devices along the cable. u
8.11
RepairZone (alias Ray Maidstone) sells a ‘universal fan quietner’ for
£21 inclusive, which will fit any Acorn RISC OS computer. They also sell
a ‘luxury’ fan filter − high quality, washable − for £3 inclusive (or
less for bulk purchases). Phone 01603-400477 for details. Ed.
8.11
Programming Workshop
8.11
Colin Singleton
8.11
Last month, I explained how to eliminate, or rather disguise, the
rounding errors in a list of numbers, so that rounded subtotals
reconcile to the individual rounded figures (Archive 8.10 p22). This
month, I offer a simple, but very efficient, routine for one of the most
fundamental of programming operations − sorting. The sample coding is
given in BBC Basic V but, with care, it can be translated into any other
language.
8.11
The quicksort
8.11
This procedure for sorting a list of items was originally called the
Hoare Quicksort, after its inventor, CAR Hoare, from whom I learned the
technique in the late sixties. At a time when RAM was measured in Kb
rather than Mb, the Quicksort was remarkable not only for its speed, but
also for the fact that it requires no more memory than is needed to hold
the data. Most fast sorting procedures required batches of data to moved
back-and-forth between blocks of memory.
8.11
In the first cycle of the Quicksort, one arbitrarily-chosen item is
fixed in its correct place in the eventual sorted list. The procedure
ensures that all items which are less than this chosen item are moved to
positions before it, and those greater to positions after it in the
list. These two blocks of data remain in jumbled sequence, so the
procedure is repeated for each of the two unsorted blocks separated by
the fixed item, and so on. This technique lends itself to a recursive
procedure − before this technique was available, rather tedious coding
was required to keep track of all the unsorted blocks of data.
8.11
The code
DEFPROCQuickSort(L$(),S%,N%)
LOCAL H%,L%,M%,F%,Z$
IF N%<2 THEN ENDPROC
F%=S%+N%ASC1
L%=S%ASC1
H%=F%
M%=S%+(F%ASCS%)DIV2
Z$=L$(M%)
L$(M%)=L$(H%)
REPEAT
REPEAT
L%+=1
UNTIL L%=H% OR Z$<L$(L%)
L$(H%)=L$(L%)
WHILE L%<H% AND Z$<=L$(H%)
H%ASC=1
ENDWHILE
L$(L%)=L$(H%)
UNTIL L%=H%
L$(L%)=Z$
IF L%>(S%+1) THEN PROCQuickSort(L$(),S%,L%ASCS%)
IF H%<(F%ASC1) THEN PROCQuickSort(L$(),H%+1,F%ASCH%)
ENDPROC
8.11
Notes
8.11
L$() is the list containing the alpha strings to be sorted. The routine
sorts ‘in place’ N% consecutive elements starting with L$(S%). Any other
elements in L$() are not affected. S% will usually be 0 or 1 on entry,
but takes other values on the recursive calls. The number of internal
recursive calls to the procedure is approximately 2/3N, but the depth of
recursion is approximately Log2N, and is therefore unlikely to fill the
stack memory.
8.11
The time taken is approximately proportional to N × LogN × LogL, where N
is the number of items and L is the average length of each. On my A540,
this interpretive Basic routine takes 37 seconds to sort 10,000 strings
of 100 bytes.
8.11
Simpler sorting techniques often require a time proportional to N²
rather than N × LogN, and are horrendously slow for more than a few
dozen items. The Quicksort is noticeably quicker if the list is
initially nearly sorted (or reverse sorted) than if it is random.
8.11
A programming detail − any version of this technique which extracts the
first or last element, rather than the middle element, Z$=L$(M%) in my
coding, will be very slow sorting a list which is already nearly sorted!
8.11
Please send comments, questions and suggestions to me at 41 St Quentin
Drive, Sheffield, S17 4PN. u
8.11
Understanding Disc Formats
8.11
Sergio Monesi
8.11
This article is aimed at all the people who want to understand more
about disc maps without going deeply into technical speak. If you just
have some questions, try reading the FAQ section and ignore the rest.
(FAQ = Frequently Asked Questions!)
8.11
I will only deal with new format maps (E-format), since the old ones
(D-format) are out-of-date really.
8.11
(I gave a copy of the FAQ to Adrian Look, of Disc Rescue fame, who very
kindly gave us some more technical comments. These appear in italics at
the end of each of Sergio’s answers. Adrian has been repairing Acorn
discs since 1991 and has a considerable amount of expertise in this
area. Anyone can ring Adrian for free advice on 01603-748253. Ed.)
8.11
FAQ
8.11
1) Is *Compact useful or it is dangerous?
8.11
On E-format discs, *Compact isn’t really useful but it can be used
safely if the map is good. If the map is inconsistent, I can’t assure
you of its behaviour, i.e. I can’t exclude the possibility that it could
cause worse corruptions. Note that RISC OS can automatically run a
‘subset’ of Compact when it has to save a file (especially if the file
is large and the free space is limited and fragmented).
8.11
Using *Compact (or subset) can corrupt the entire disc if the map is
already corrupt. This does not always happen but it is a real
possibility. The safest thing to do is to backup the disc and reformat
it, i.e. copy the contents of the floppy to RAMdisc (or, preferably,
hard disc if you have one) and then reformat the disc and copy the data
back onto it − better still throw that disc away and use a fresh one!
8.11
2) Can I trust *CheckMap?
8.11
I have to admit that CheckMap isn’t a very well written command but if
it says that the map is good, the map IS good and you have no lost space
on your disc. If it crashes the computer or if it says “Map inconsistent
with directory tree”, your map or directory structure IS damaged and the
damage can worsen if not cured soon.
8.11
Disc Rescue cannot help with this problem. The safest course of action
is to backup and reformat.
8.11
3) What can I do with a broken directory or an undeletable file?
8.11
A broken directory cannot be deleted using standard OS commands and it
can just be considered as a ‘normal’ undeletable file. To remove it, you
must use some directory manipulation program (like Disc Rescue?) or the
shareware programs ‘Eliminate’ (distributed with ‘fsck’) or ‘FSCKb’.
8.11
Attempting to repair a directory should be undertaken with great care.
The contents have to be reconstructed/repaired exactly, otherwise you
could run the risk of further (and potentially more damaging)
corruption.
8.11
4) What can I do if *CheckMap doesn’t work or tells me that the map is
inconsistent?
8.11
Apparently, the only thing you can do is to try the shareware program
‘fsck’ (or the new ‘FSCKb’) that performs the same task as *CheckMap but
also tries to fix the damage.
8.11
I have not seen this utility, but fixing the map to this extent is a
very complicated task and your safest bet is to backup and reformat.
8.11
5) Are there some dangerous actions that can lead to a map corruption?
8.11
I am not the only person who thinks that having a nearly full HD (say,
less than 1Mb free) can be dangerous, especially if you handle very
large files. Using bugged programs that can sometimes crash the computer
while it is writing to the HD is really dangerous but, fortunately,
there are very few programs of this kind around...
8.11
Judging by the number of calls we get from people complaining that their
computer says, ‘Disc not understood. Has it been formatted?’, I would
say there is some basis for this comment. However, if you do encounter
this problem, it does not mean that your data is lost. If customers have
a copy of Disc Rescue, we can often talk them through the repair process
on the telephone. Our success rate is about 70% for hard discs.
8.11
6) Does a map corruption imply that some data on the disc has been
corrupted too?
8.11
Generally, no. For example, if the corruption was caused by a delete
operation that was interrupted after it removed the file from the
directory but before the removal from the map, the map will be
inconsistent, but no data has been lost/overwritten.
8.11
On the other hand, a ‘Broken Directory’ can be the evident sign that
something actually has been corrupted on the disc, so you can find that
some other files are damaged. In fact, RISC OS can easily notice the
wrong directory header/checksum but it cannot really understand if a
text file has been corrupted!
8.11
7) How can I find if my disc is E-format?
8.11
You can use the command *Map. If it says “new map”, you have an E-format
disc, otherwise you have an old D-format disc. When you use *Map, be
sure to be in the correct file system or, alternatively, use the command
“XXXXX:Map” where XXXXX is the name of the file system (e.g. IDEFS,
ADFS, SCSI, etc). If the *Map command doesn’t exist, your file system
isn’t FileCore based (like MemFS, ArcFS, SparkFS), so what is described
in this file can’t be applied to it. (You can also find out in the
desktop with <menu> on the floppy icon on the iconbar by selecting
Format−Current format. Ed.)
8.11
8) Is there a program to unfragment the disc?
8.11
No. However, such a program will not be completely useful since RISC OS
already tries to keep files unfragmented. The *Compact command can be
useful to unfragment the free space (and sometimes the files too) inside
a zone. A similar program (but more useful) should be able to move the
most used files (but only the ones that are not continually updated)
near the middle of the disc (i.e. near the root directory) but this will
require a lot of time, is generally dangerous and will not provide
(probably) a great improvement in disc access time.
8.11
E-format map − technical info
8.11
Before starting with the map itself, we have to look at files and disc
structure.
8.11
Each file on a disc (including directories) can be identified from a SIN
(System Internal Number) that is stored together with all the other file
information (name, filetype, size, etc) in the directory that contains
the file. The SIN is made up of two parts, the file number (or file ID)
and the sector offset (more on this later).
8.11
The disc (HD or floppy) is physically made up of a number of heads (two
for floppies), tracks and sectors per track. RISC OS will generally
ignore this and will consider the disc as a consecutive sequence of
sectors.
8.11
The map of an E-format disc is divided into zones where each zone
represents a number of consecutive sectors and can be considered as a
stand-alone entity. So, unless specified, the map format can be applied
in the same way to both single-zone discs (like 800Kb floppies) and
multi-zone ones. Note that there is no relationship between the physical
disc structure (i.e. number of heads, tracks, etc) and the subdivision
into zones.
8.11
On each disc there are two copies of the map (one is taken as a backup).
Since RISC OS ensures that the two maps are always identical, if the
first is corrupted, the second is of no use either! The second map can
be useful, however, if the first one has been physically damaged,
although (apparently) RISC OS always reads the first and ignores the
other.
8.11
Each zone consists of a list of blocks of variable length, each one
representing an occupied or a free part of the disc; the former contains
the file numbers (i.e. the first part of a SIN) and the latter contains
a link to the next free-space block. If you know the SIN of a file, you
can easily find out where it is located in the zone, and so you can know
the exact position of the file on the disc (i.e. the disc address). If a
file is fragmented in small chunks, the same file number can appear in
more than one block, in the same or in different zones. In this way, you
can also have files that straddle across two or more zones.
8.11
Sometimes, two or more files have the same file number but different
sector offset, i.e. the second part of a SIN. This means that, in the
map, they appear to be a single file (occupying only one block) but,
knowing the SIN, it is possible to find out the right address of each
one. This trick is useful to avoid wasting a lot of disc space. Because
of the organization of the map, each block must occupy a minimum fixed
length (that generally depends on the size of the HD) and so, even if
the file is really short, it has to use up some extra disc space. Thanks
to the sector offsets, a lot of small files can share the same block
(thus the same file number) but each one could only use the size of a
physical sector.
8.11
I have tried to explain the map structure in a simplified way, without
going deeply into the real data structure (bit streams, checksums, etc),
but I think I have said enough to allow you to understand...
8.11
What can go wrong?
8.11
Obviously, the above structure is really rigid and there is no room for
errors! Unfortunately, errors often occur because of unexpected power
down, system crashes, physical damage (errors in FileCore module
itself?), etc. Here is a list of possible problems:
8.11
• different file lengths in map and directory: if the allocated
length in the map is more than the one in the directory, you can ignore
this (but you have lost some space), but in the opposite case, RISC OS
generally crashes if you try to load the file.
8.11
• a file number is allocated in the map but not in the directory
structure − you have some space occupied in the map by a non-existent
file.
8.11
• a file has a file number that isn’t allocated in the map −
generally, RISC OS hangs the computer if you try to load the file.
8.11
• the free space linked list is broken − there is some free space
that isn’t linked with the others, thus it is lost (it is no longer
free).
8.11
In these cases (except in the ones that make RISC OS crash), *CheckMap
reports an inconsistency.
8.11
Unfortunately, there is a worse case:
8.11
• the checksum of one or more zones is wrong: in this case
(apparently easy to fix), RISC OS isn’t able to recognise the disc
properly. Using a Disc Doctor tool, it should be possible to fix the
problem manually.
8.11
Another quite common error (not directly related to the map) is:
8.11
• broken directory − this error is issued when RISC OS finds a
directory that has some ‘strange’ data in it (no directory identifier,
wrong checksum, etc). The only way to cure this is to remove the
directory from its parent but, unfortunately, this is impossible using
standard commands (wipe, delete, remove). Broken directories usually
lead to inconsistent maps because all the files contained in them
disappear from the directory structure, but not from the map (see
above).
8.11
What can be wasted?
8.11
Because of the disc structure and the map organization, some space can
be ‘naturally’ wasted.
8.11
First of all, the sector bounds are a physical limit, and so all the
files must be ‘sector aligned’. So, on a 512 bytes sector sized HD, a 1
byte file always uses (at least) 512 bytes, while a 513 byte file uses
1024 bytes.
8.11
But the real waste of space is caused by the map organization. As I have
already said, there is a minimum length for each map block (for now I
will consider it to be 4Kb, but note that this is only an example).
8.11
This is not so bad because more than one file can share it, hence four
1Kb files can fill up the same block, wasting no space. The bad point is
that only files in the same directory can share blocks, so four 1Kb
files in four different directories will use 16Kb.
8.11
A directory always needs 2Kb of disc space to keep its data. Since a
directory, from the map point of view, is just a file, it will still use
4Kb. Fortunately, it can share the remaining 2Kb with files contained in
it (not with files from its parent). If a directory contains a 2Kb file
or 2 × 1Kb files, all the space is used, but if it contains only files
longer than 2Kb, the space will be wasted.
8.11
Wasted space isn’t lost space. If you have an empty directory, you will
waste 2Kb. But when you delete it, you will regain the whole 4Kb, so
there is no loss. If you save a 1Kb file in it, the free space on your
disc will remain the same, and the wasted space will be just 1Kb.
8.11
During normal operations, there is no way to avoid wasting space: RISC
OS does all the work and you don’t have to worry about the file
allocation strategy. However, you can sometimes recover some wasted
space by simply copying a file, deleting the original one and renaming
the new one as the old one (usually it is better to copy the whole
content of a directory to another and then rename the whole directory
back) but don’t expect too much gain.
8.11
*CheckMap and *Compact
8.11
CheckMap performs quite a simple task − it just scans the directory tree
and checks that all the file numbers in the map are actually contained
in a directory. Considering that CheckMap should be used when something
goes wrong, it seems to be a very poorly written piece of code.
Sometimes, it hangs the whole computer, sometimes it just prints the
cryptic message “Map inconsistent with directory tree”, and the only
action that it should do to fix the situation is the swapping between
the two copies of the map (but see above to understand why nobody has
ever been able to use this facility...).
8.11
Compact was a very useful command with the older D-format but with
E-format discs, it is almost useless. Its function is to collect
together fragmented files or fragmented free space inside zones (but not
from one zone to another). With E-format discs, this operation is
performed automatically when a new file is saved in that zone but, in
any case, you can use it ‘manually’ to speed up future savings (although
the speed gain is almost negligible). With D-format discs, the
‘auto-compaction’ doesn’t exist and files cannot be fragmented: if there
is enough space on the disc for the file to be saved, but this free
space is fragmented in small chunks, the error “Compaction required” is
issued.
8.11
Finally
8.11
If you have any other questions related to HD maps, structure,
directories, etc, you can contact me directly on email as
sergio@freebsd.first.gmd.de or post the question(s) to comp.sys.acorn or
send them by post to the Archive office.
8.11
I’d like to thank all the people who provided information to help me
write this article. Please note that I could be wrong, inexact and vague
about certain things. If so, any corrections would be welcome − please
contact me with any amendments/corrections. Thanks. u
8.11
(Disc Rescue is a useful tool for disc recovery but, please, buy it now
as an insurance − £33 through Archive − rather than ringing us up in a
panic when your hard disc goes down! LOOKsystems offers a free disc
repair advice service and also a ‘no fix, no fee’ data recovery service
− see Products Available for details. Ed.)
8.11
Acorn Networking Preview
8.11
Matthew Hunter
8.11
Although the products I shall refer to here are not yet available, since
they support Acorn’s position as a leading supplier of computer
equipment to schools, we thought you would like to have a preview. The
new products I shall be describing are Acorn SchoolServer, OmniClient,
InterTalk and updates to Acorn Access.
8.11
Acorn are saying that they will be available during this summer −
probably late summer/early autumn, hopefully in time for the new school
year. When they are released, we will put them in the Products Available
section although, for obvious reasons, we will not be stocking some of
the larger items!
8.11
Acorn SchoolServer
8.11
Most of Acorn’s networking options to date have been limited to Acorn
machines. Although Acorn, PC and Mac could all reside on the same
Ethernet network, the Acorn machines would only be able to talk to other
Acorn machines. Acorn SchoolServer has been developed in conjunction
with Microsoft Ltd, IBM and ANT to address this problem. The product is
based on IBM’s Power PC technology, pre-installed with the Microsoft
SchoolServer architecture (in turn based on Microsoft Windows NT), and
Acorn OmniClient software is installed on RISC OS client machines.
Acorn, Apple and PC users can all store and retrieve files from the
Acorn SchoolServer allowing connectivity not previously possible.
8.11
The package will be available in two variants. For medium sized networks
(up to 500 users), the AS500 features 100MHz Power PC (RISC) processor,
24Mb main memory, 1Gb IDE drive, CDROM drive and Ethernet interface.
For larger networks, capable of supporting over 1000 users, the AS1000
has 100MHz Power PC processor, 256Kb L2 cache, 32Mb memory, 2Gb SCSI
drive CDROM drive, 2Gb SCSI DAT tape device and Ethernet interface. The
software has support for network protocols utilised by RISC OS, DOS,
Windows-based and Apple Macintosh platforms. By using the SchoolServer,
all platforms’ networks can be maintained in a consistent manner.
Resources can be shared across the different platforms, via standard
formats such as JPEG, MPEG and ASCII text. Not only files can be shared
− printers and other resources can also be used.
8.11
OmniClient
8.11
As well as being supplied as part of the Acorn SchoolServer package,
OmniClient will also be available as a separate product for use where it
is wanted to connect Acorn equipment to existing industry-standard
network servers. It offers connectivity to NTServer, LanManager, Windows
for Workgroups and NFS solutions, and can act as a client for Level 4
and Acorn Access use. It is a software only solution, no additional
hardware or software being needed for the server, and all server
security aspects are maintained. This allows simultaneous sharing with
Acorn, PC and Apple Macintosh platforms, and all fileservers are visible
through a common hardware and software interface. It requires RISC OS
3.1 and at least 2Mb of memory. It does not require a local hard disc,
and will happily co-exist with all current and planned Acorn Networking
products.
8.11
Information is stored in the native format for the server being used,
and translation is done for the client so that any files can be
interpreted correctly. Thus, PC, Unix or Mac files can be accessed with
the ease of use offered by RISC OS. The initial set of supported
protocols can be supplemented at a later date to enable other networking
systems to be accessed in the future.
8.11
InterTalk
8.11
This is Acorn’s Internet Access software which allows access to
electronic mail, internally and via the Internet. It is accessible from
any machine on your Acorn Ethernet network, and is easy to install,
configure, use and maintain, using a range of supported Internet access
hardware, via any established Internet provider. You can also create
internal bulletin boards, and access external ones. Local access options
allows RISC OS users to send internal electronic mail messages between
users within a local area network encompassing an entire school or
campus, and beyond the local area can use the Internet to find out
information from other institutions, countries or continents. The
administrator can allow or disallow access to particular sites, for
groups or individuals, over the Internet and locally, limiting access to
those deemed suitable for specific subjects. While access can be gained
via any machine on the network, information specific to users is
protected by a password key, so information can be sent and received
without being seen by unauthorised eyes. InterTalk uses established
standards for email to enable a high level of compatibility with
solutions for other platforms.
8.11
Access+
8.11
Building on the simple and reliable Acorn Access networking system,
Access+ retains the easy-to-use network management of its predecessor
for hard disc and printer sharing, but has increased functionality to
support CD-ROM sharing, both peer to peer and site-wide information
sharing with selected individuals or groups. The system uses standard
Ethernet technology as a basis and will happily coexist with other Acorn
networking solutions on the same network.
8.11
Hard discs can be shared using simple menus − all or just a part of the
disc can be shared with all users on the network − or by using password
protection, Access+ allows the user to choose who can or cannot see and
use the information. The plug and play philosophy means that
installation is simple and, unlike many other systems, no file server is
required − only an Access+ pack for each machine, and suitable
connecting cables. The cards are now available as 10Base2 cards for the
A3020/A4000, and 10BaseT / 10Base2 combination cards for the Risc PC,
A5000 and A3000. Unlike with Access, cables are not supplied as part of
the pack, but for simple 10Base2 networks, a separate cabling pack is
available.
8.11
Access CD Share
8.11
Access CD Share is a piece of server software which uses a cacheing
system to reduce the lag inherent in CD-ROM, particularly when it is
being used by several clients. Data is cached in memory on the server or
on the hard disc, if necessary. It is not a stand-alone product, but
should be used as a complementary product for use with Access+ and Level
4 Release 3 Ethernet networks.
8.11
(Any similarity between the text of this article and any Acorn press
releases is not entirely surprising!) u
8.11
I think it’s time to try and get a ‘Networking Column’ going again.
There’s more here than Adrian Bool can cover in his Internet Column. Any
offers of help with this, and/or to actually be the editor of such a
column, would be gratefully received. Ed.
8.11
Help!!!!
8.11
Articles wanted − Following Paul’s request for articles in last month’s
magazine, there are several items I would like to see:
8.11
1) How can I get a reasonable print from a frame captured with Vision 24
(The HCCS digitiser). The sprites look all right when they are captured,
but when I transfer them to a frame in Ovation and attempt to print
them, they look really awful. (Is this a problem specific to the Vision
24, or would a general article on printing sprites be helpful to more
people? Ed.)
8.11
2) How can I use my HP550C to print addresses on envelopes?
8.11
3) I have a CD-ROM drive fitted to my A5000, the upgraded Morley SCSI
interface provides drivers for a large number of CD drives. Do they all
use up memory space in the computer and, if so, is it possible to reduce
the load on memory by “killing” the unwanted drivers.
8.11
Aneurin Griffiths, Pembrokeshire.
8.11
Charity BBCs − We have been offered two BBC computers, plus bits, for
our charity exchange, by someone in Henley-on-Thames. Unfortunately,
they cannot send them to us, so if anyone is coming to Norwich, and is
willing to collect these items for us, could you please contact us to
arrange it? Thanks.
8.11
Ed.
8.11
Converting WFN fonts to RISC OS − There are two relatively old
applications for converting WFN fonts to RISC OS. I have FontConv
version 1.44 (8th March 1991) and WFNBoss, with no discernible version
number or date. Neither of these programs seem to cope with some newer
WFN fonts I have, so does anyone know of updates to these or other
programs which might work?
8.11
Brian Cowan, Wembley
8.11
Impression Junior wanted − Has anyone got a copy of Impression Junior
that they could let us have if we make a £10(ish!) donation to your
favourite charity, please?
8.11
Ed
8.11
Missing footers − I use a Brother HL630 laser printer. Although the
resolution is obviously not as sharp as that of the HL660 mentioned in
last month’s magazine, it is still a good entry-level laser printer and
excellent value for money. The printer’s manual states that the printer
will emulate a HP Laserjet 3 series printer. This seems to work
reasonably well, but when I try to print from within Impression Style
using the default page setup, it cuts off the footers completely. Is
there a work-around which might overcome this problem?
8.11
Joe Gallagher, Hackney
8.11
Printer drivers − In ‘the good old days’ when every application needed
its own printer driver, the Archive monthly program disc often featured
drivers for recent printers of the day. Fortunately, Acorn’s !Printers
has greatly reduced the problem so that we now only need one driver for
each printer. However, there are some printers which are not supported,
in particular, the newer variants. For example, we have had several
enquiries recently about the Hewlett Packard DJ560C, because neither
Acorns driver nor the CC TurboDriver support the printer at 600×300 dpi.
If anyone out there has written their own definition files to support
this (and any other currently unsupported printer), would you be willing
to allow us to distribute the driver on the program disc to save
everyone having to do their own?
8.11
NCS
8.11
Re-defining of filetype sprites − Sprites corresponding to the same
filetype are often found in different applications; sometimes they are
different sprites. The sprite used by the desktop is the most recent one
seen and it can be annoying when a newly-seen application redefines an
existing sprite. Is there a simple way of fixing filetype sprites? The
converse is true with the sprites representing an application directory;
in RISC OS 3, the first sprite seen is always used.
8.11
Brian Cowan, Wembley
8.11
SCSI tapestreamer software − I am looking for some good tape backup
software which will work on a SCSI tapestreamer. At the moment, I am
using some freeware software − TapeFS from Brian Brunswick, and Tar from
David Pilling (well, not exactly free, but almost). The only problem is
that the data is not compressed. I tried a different version of Tar,
which did compression, but it got upset with image files, and left them
uncopied... I am willing to pay good money if the software is good and
works with my SCSI tape streamer, as my data is valuable! Thanks.
8.11
Michael Ben-Gershon, Israel (mybg@cs.huji.ac.il)
8.11
Statistical program − Regarding Tony Cowley’s query about stats packages
(Archive 8.10, p26), !1st can do multiple correlation stats. If it
doesn’t do exactly what he wants, he could ask for it to be added.
Serious Statistical Software (0151-327-4268) do free demo discs.
8.11
A.M.Corey, Bucks u
8.11
8.11
Risc PC − The Differences
8.11
Eddie Lord
8.11
I have just joined the ranks of the Risc PC owners and so, for anybody
already familiar with the original Archimedes, and who only read the
manual when all else fails, the following comments may be of interest.
8.11
Using a non-Acorn monitor
8.11
The user guide gives very little help if you have a non-standard
monitor. Switching on for the first time may give you an unusable screen
display. The Welcome Guide chapter ‘If things go wrong’ on p67, points
you to ‘Monitor Configuration’ on p109. This tells you to set the
monitor type to Auto, but as the screen is unusable, this is less than
helpful advice!
8.11
Under the section on non-Acorn monitors, it tells you to see page 9
(which describes how you switch a monitor on), or to contact your
supplier. However, under the section on Acorn monitors, it tells you to
try a Delete power on which resets all the CMOS bytes, as well as
changing the Monitor type, Colours and Resolution to Auto. This will
give you a 640×680 VGA standard picture which should be usable by most
monitors.
8.11
The !Mon application is a utility that will get round this problem
(Archive 8.4.28) but, of course, you need to have a copy to hand when
you unpack the new Risc PC.
8.11
Initial impressions
8.11
Having achieved a usable picture, my initial impression was that there
seemed to be no immediate difference to the desktop. This says a lot
about the Acorn desktop environment which had certainly stood the test
of time, but I do hope Acorn are not going to rest on their laurels.
8.11
Underneath, there are some fairly major changes. Open up the hard drive
filer window and note that the Boot application has a new icon. Opening
the Boot Application up in the normal manner will reveal some of those
major changes.
8.11
Next, click on the Apps icon, and all the usual items you would expect
to appear are there, along with some new applications, such as ARPlayer,
Maestro, Squash and CloseUp. More to the point, at this stage, is what
is missing − Configure.
8.11
!Configure is now accessed by double-clicking the Boot application. On
earlier machines, this would have rebooted the machine, but this is one
of the nice changes made to the Risc PC.
8.11
Note also, some new directories, such as Apps, Images and Video.
8.11
Open up the Images and Video and try the applications inside, sit back
and be amazed at the stunning quality of the slide show and marvel at
the video clips. Now can you see the difference?!
8.11
Backup, backup and backup
8.11
Having had a little play, now is the time to do some house-keeping
before there is an accident. Unlike some computer manufacturers, Acorn
have preloaded all the software. The downside is that it is not
available on floppy disc. At the very least, therefore, I would make a
backup of the following directories: !Boot, Apps, Printing and
Utilities. This will take several discs, and backing up all the files,
including the Video clips, will take approximately twenty-four 1.6Mb
discs.
8.11
Make a separate directory, such as zBootBkUp, and copy the Boot
application into this, to give a more convenient backup, actually on the
hard disc, should things go wrong. The use of the letter “z” just forces
the directory to the bottom of the screen out of the way, assuming that
the filer is sorting by name.
8.11
The configure screen
8.11
As has already been well documented in Archive, the Boot application is
a major change in the structure of the computer desktop environment.
However, the user is insulated from these changes in a number of ways.
The configure screen has several additions that do just this. Taking
each option in turn, the differences can be highlighted.
8.11
Hard discs − the ST506 is not shown as an option, but does work
nonetheless. On the screen, only IDE and SCSI hard drives options are
included. The SCSI drive would, of course, need a SCSI podule.
8.11
Screen option − the most noticeable change is that the NewLook
backgrounds are included here. There are now individual pick lists for
monitor, colours and resolution. You no longer set modes by number. This
is where the monitor can be set to Auto.
8.11
The Mouse, Keyboard, Memory and Sound options have not been noticeably
changed.
8.11
A new addition to the configure screen is the System option. Clicking on
the System folder will bring up a screen which allows you to drop a new
system folder into it and thereby update the computer’s system
directory. Using this method, rather than dropping modules directly into
the System.Modules directory, has the advantage of giving some error
handling.
8.11
The fonts option also has a merge facility built in, for merging all
your latest font creations. At last I have been able to use the super
Font Designer’s Toolkit from iSV, which previously would not work with
my LOOKsystems’ Font Directory. The font option also controls the
default screen font, which had been set to Homerton. Initially, this
gave me an extremely slow screen dragging and updating, so I changed the
default to the system font, speeding things up considerably for the time
being. This was subsequently cured by setting the Font Cache to a
sensible number like 256 in the Memory Configuration icon. Dragging and
updating are now back to normal.
8.11
The Windows option has changed only slightly, and the Applications
option has now gone, to be replaced by a Lock option, for password
protection.
8.11
Apps directory
8.11
Another new departure is the Apps directory. In RISC OS 3.1, the
applications in the Apps directory were held within ROM. These
applications are now held in the Apps directory which is why it is
essential to make a backup of these applications. However, the major
advantage of this arrangement is that the Apps directory can be tailored
to suit the individual needs of the user. Placing your most used and/or
favourite applications in the Apps directory, will mean that they will
be available via the Apps icon on the iconbar. For instance, I have
replaced the Squash application with the SparkFS application.
(Incidentally, an updated SparkFS module is included in the
Utilities.Patches directory.)
8.11
Saving the system configuration
8.11
Setting up the Boot file is simplicity itself. After setting up the
!Boot/Configuration file, reboot the computer and set up the screen and
any applications you usually use, plus the Ramdisc if required. Select
the Task Icon (the Acorn icon on the iconbar) and select desktop boot.
This will save the current setup, ready for the next time the computer
is switched on or rebooted. Note, however, that this file will override
any settings in the configure file that had been set up previously. See
the User Guide, page 127 and 139, for more details.
8.11
Make modes
8.11
Having established the screen configuration in Auto (giving a 640×480
screen), a few more screen definitions are in order. For this, you will
need MakeModes from Acorn, or some other equivalent program. MakeModes
is available on Archive NCS Utilities Disc Nº1 or the Archive magazine
disc for October ’94 (8.1). An article describing how to make new modes
can be found in Archive 8.1 p41. Can I suggest that this is very
carefully read, alongside the documentation within MakeModes. See also
Archive 8.5 p69 for a description of Makemodes and CustomRPC. For the
Eizo 9060, a 720×540 mode running at 67MHz is absolutely ideal. What the
documentation does not make clear is that the new screen modes or MDF
(Monitor Definition File) should be saved to
!Boot.Resources.Configure.Monitors. Create a new directory, next to the
Acorn ones already there, and place the MDF in the new directory. After
a reset, this definition file will be presented on the configure option
for monitors.
8.11
You may find that your new definition does not appear in the menu list,
and you will need to edit the MDF to ensure it does. This is simple
enough. Just load the MDF into Edit, or equivalent, and check the line
in the MDF that corresponds to your newly created screen definition.
Ensure that the title line has the # removed, which will ensure that the
definition will be available in the screen configuration.
8.11
Aleph One boards
8.11
I have an older style Aleph One 486 SLC board, which I fitted. This must
be fitted in the upper slot of the slice to prevent shorting of the
circuit board by the conducting film that has been sprayed on the inside
of the slice. A suitable strip of insulating tape may also be used. This
only applies to older style boards meant to fit the A5000 and earlier.
8.11
Loading the software was simplicity itself, and DOS 6 and Windows for
Workgroups also installed without any discernible problems. This was
followed by the Aleph One window driver, loaded via DOS. The only
problem was that the driver kept asking for Window 3.1 disc 1, and did
not recognise that Windows for Workgroups had been loaded. The
appropriate file was found on disc 2.
8.11
I also tried MS Access, which loaded without problems, but it now keeps
on failing when a database is loaded. Windows seems reasonably smooth,
the screen display is surprisingly good and, as far as I can tell, both
Word v2 and Excel v4 work fine.
8.11
Problems encountered
8.11
I have a spare Morley SCSI board which I fitted. This did not work
immediately, as an updated EPROM was required. This was duly upgraded to
version 1.18 with some new utility software, which arrived on two discs.
(Upgrade cost was £35 from Morley.) Unfortunately, it has taken a couple
of phone calls to get the upgrade sent to me, plus one disc that arrived
totally blank! One irritation is that the Morley software does not seem
to support removable media very well. This means that the external drive
(such as a floptical or SyQuest) must be switched on before the computer
is booted up, or the computer will hang, as it does not recognise the
external drive. Not very user-friendly and, for that reason, not to be
recommended.
8.11
Computer Concepts’ Turbo Driver was the next problem. Version 4.01 kept
on giving me an error “This version of !Printers is too old”. This is a
known problem and Archive 8.7 p13 refers. Version 4.01 was upgraded, by
return, to version 4.02, which cured the problem. Version 4.03 is now
current.
8.11
However, I still had a number of problems with this driver:
8.11
With the printer switched off, the printer icon cycles between the
hazard warning and the standard printer icon at regular intervals and,
each time, accesses the hard drive. This did not happen with the earlier
version, and has only appeared with version 4.
8.11
A further problem occurs when the printer is out of paper, after the
print job has started. Normally, the load/eject button could be pressed,
a new sheet would feed into the printer and printing would continue.
Now, however, the printer prints some random characters at the top of
the page, and spews out the paper, spoiling the print run.
8.11
I also find that Impression occasionally gives me the message “Hardware
key not found”, and quits. (See Archive 8.6 p62 for a discussion on
dongles.) After a couple of months and several letters, I managed to get
some answers, and an upgrade to Impression v4.05.
8.11
The major problem was that I have been using an old dongle, from the
days when Impression was first published. Printer status signals are not
passed through these old dongles, this being only available for dongles
issued after the Acorn A5000 was introduced. CC have exchanged my
dongle, and all the previous problems seem to have disappeared.
8.11
Note also that Impression has to be reinstalled from the original discs,
as this is part of the software protection. A version which I backed up
onto the new hard drive refused to run.
8.11
Pet hate
8.11
Naturally, I went through every program I could find to see if they
would work. Many of the games and PD software would not work. Some of
these programs crashed the machine so that the ONLY way to recover the
situation was to use the reset button. Why then have Acorn put the reset
button at the back of the computer, which is almost impossible to
access? Why do designers make crass mistakes of this kind? (It’s because
many of them cannot afford to buy a Risc PC just to test their
software’s compatibility. Ed.)
8.11
Conclusion
8.11
I had hoped that upgrading to the Risc PC would be a smooth and painless
transition, but it was not so. I had very little problem changing from a
386 to a 486 portable, and I find it strange that there seems to be
limited backwards compatibility with the last version of RISC OS.
8.11
I still wonder if a Pentium 100 would have been a better choice,
especially for multimedia. There is a vast choice of CDs available in
the PC world that require sound blaster equivalents, and these are not
yet available to the Risc PC owner. Whilst the introduction of a 486
card is to be welcomed, at 33MHz it is already outdated, since the entry
level PC is the 486DX 66MHz, with the latest Pentiums not far behind. Is
Acorn too little too late again?
8.11
There is no doubt at all that the Risc PC is ahead of its time, but it
does need some really serious software to do justice to its performance
and to compete in the market place. u
8.11
8.11
Comment Column
8.11
Acorn Campaign − More positive crits this month... (many thanks to those
who sent in the cuttings).
8.11
Electronic Imaging carried a three-page review of a 40Mb Risc PC with
PhotoDesk. They gave it a thumbs up in many areas, mainly comparing it
with Macs. One strong message was the ease of interchange of data, which
the Acorn made possible, between different platforms. It ended with a
very telling conclusion... “At around £2,000 plus the RAM plus VAT, this
is a machine that those with open minds should at least try.” (My
italics!)
8.11
The Telegraph (Tues June 20th) had an excellent piece about how a
composer (Adam Gorb) was making good use of Sibelius. It even mentions
that it uses an Acorn computer. It does put it in terms of “The only
criticism... is that it uses an Acorn computer” (my italics) but at
least it then goes on to mention that it can run PC programs by using a
486 card.
8.11
Ed.
8.11
Apollonius PDT − I had hoped to report more favourably on the latest
upgrade to Apollonius (from version 0.95 to 1.09). I upgraded originally
from WorraCad and consequently require to transfer these files to
Apollonius. The only way at present is to transfer them as drawfiles.
Apollonius won’t print drawfiles correctly, because it leaves a lot of
information missing on the printed page, although the information is on
screen. So I tried to think how else I could get a printout. I added the
missing information I wanted on the drawing and then saved from
Apollonius as a drawfile. Draw would not accept the file and gave the
error “Object size is not a multiple of 4 at location 16_7F98”.
8.11
I am most disappointed with the program as Oak Solutions (Dial
Solutions) advertise this as an upgrade to WorraCad, and I have had to
go back to using WorraCad or Vector for my drawings.
8.11
Brian Cocksedge, Midhurst, W Sussex
8.11
Articles for Archive − Many thanks to all those who offered to write
articles and especially to those who sent things in straight away. The
summer time is always bad for getting enough articles as no-one wants to
be indoors slaving over a hot computer during the lazy, sunny(?!) days
of a British summer! As you see, we had enough articles for this issue,
but only just, so keep the articles coming, please.
8.11
If you don’t feel you have the expertise to write articles, ideas of
what you would like to read about are equally helpful. We have people
offering to write but who don’t know what subjects to write about.
8.11
One constant request is for more ‘beginners type’ articles. I think many
of us assume that everybody else knows the basics of operating commonly
used applications like Paint but, actually, we don’t − and I can say
‘we’ because I rarely use Paint and haven’t really got a clue as to how
to use it!
8.11
Once again, thanks for all your support. I really do enjoy editing the
magazine and that’s mainly because it brings me into contact with
enthusiastic people, and enthusiasm is catching.
8.11
Ed.
8.11
Books on ‘C’ − There are two ‘C’ books which I have found really
helpful. (1) A Book on C − R.E. Berry, B.A.E. Meekings and M.D. Soren −
second edition, published by Macmillan Education, ISBN 0-333-46529-6. (I
have two spare copies of this for charity, £5 each − ring 01962-774352
if interested.) (2) Going from C to C++ − Robert J. Traister, published
by Academic Press Professional, ISBN 0-12-697412-8.
8.11
John Evans, Mijas Software
8.11
Budget games − Although I am not a great games player, my favourite game
on the old Beeb was something called Bug Blaster produced by Alligata
Software.
8.11
Of the few budget 32-bit games I have encountered, my favourite is
Digital Psychosis’ Asylum, costing £8.95. Although, on the surface, this
game seems little different from many other ‘platformers’, so much is
happening, and amid such well-drawn scenery, that it really does have me
hooked. Asylum is amazing in terms of what you get for your money. The
graphics are very well drawn, the levels − although there are only three
of them − are enormous, each having eight associated ‘cell shut-down’
areas. It never crashes, and the whole game has a real feel to it along
with its own atmosphere. The only thing lacking is a facility to save
the game, and it does take a long time to tackle even the simplest level
completely, so a save option would be useful. My only frustration is
that I am still unable to discover how to operate the teleports... if
anyone out there knows the answer...
8.11
Other favourites are: Tower of Babel, Small, Super-Pool and the PD game
Shanghai.
8.11
John Ward, Morden, Surrey
8.11
Font Emporium CD with EasyFont3 − Since writing my review last month
(Archive 8.10 p45) I have discovered a problem with the Oxford font on
the CD-ROM. When attempting to use it with Impression Publisher, I get a
long message which, briefly, states that the area of memory reserved for
fonts is full or that a font error has occurred. I have tried increasing
the font cache to as much as 8Mb but the error still occurs. I have
tried the font with Ovation with similar results.
8.11
However, I am drawing the attention of Zenta Multimedia to this in the
hope that the problems may be corrected on a future production run.
Perhaps a corrected version could be put on a floppy disc and sent out
to existing purchasers of the CD-ROM. Incidentally, the promised
instruction leaflet has not yet arrived.
8.11
As regards EasyFont3, the latest version mentioned in the June magazine
is 3.17. There are only minor changes to version 3.15 quoted in the
review but v3.16 or later is essential if you are using the new CD
version, in order to achieve interaction between the two applications.
8.11
In the review, I mentioned that Fabis Computing were working on a
version of EasyFont especially for use with Font Emporium. I have now
received EasyFont3CD and have tested it with the CD-ROM and it works
very well indeed.
8.11
Installation is quite simple and clicking on the icon on the iconbar
brings up a long list of the fonts on the CD-ROM − all 550 of them, even
if you have forgotten to put the CD in your drive! The list of fonts is
displayed using the currently selected font. I found that reading some
of them in this format is difficult, but clicking <menu> on the font
list gives you a small menu which is self explanatory.
8.11
Accessing ‘Display’ gives you the option of changing to a normal display
which is readable. This sub-menu also allows you to get rid of the font
group names and all the fonts are then displayed in alphabetical order.
It is possible to view a font and its styles from this menu as well as
the iconbar menu. The sub-menu also displays key shortcuts, but care
must be taken to position the arrow over the font display when using
these, as the same control keys may be used by other applications.
8.11
One thing that really impressed me was the fact that, when working on an
Impression Publisher document, you can change your mind and add or
delete fonts as you go along. If you don’t like the look of the font,
try another, all without leaving the document or having to find the font
directories on your hard disc! Unfortunately, this doesn’t work with
Ovation, although it may be corrected when Ovation Pro eventually
appears.
8.11
When a ‘saved’ document is required again, dragging its file icon onto
the EasyFontCD icon before loading will install the fonts used in the
document. Clicking on the document file will then load it with all the
necessary fonts displayed. This facility also applies to files saved
using EasyFont3, version 3.16 or later, providing the fonts used are
those from Font Emporium or RISC OS 3 ROM fonts.
8.11
Fabis Computing are offering the following packages:
8.11
1. EasyFont3CD software and Font Emporium CDROM − £35
8.11
2. EasyFont3CD software only for registered users of EasyFont3 − £10
8.11
3. EasyFont3CD software and manual only for nonregistered users − £15
8.11
4. EasyFont3, EasyFont3CD and Font Emporium CDROM − £60
8.11
All prices include postage and packing and items are available direct
from Fabis Computing.
8.11
Ted Lacey, Southampton
8.11
Overhead display with a Sony 29" TV − In many schools or other
situations where demonstrations are made to a medium-sized audience,
there is a need for a larger display than a standard or even 17"
monitor. Large screen monitors are usually very expensive, so a TV is an
alternative. Although a TV cannot display the higher resolution modes,
it can display the standard modes such as modes 12, 15, 24 and 36.
8.11
The Sony Trinitron 29" television with model number KV-X2982U is
available in the educational market for under £600 +VAT and it has a
very high quality picture output. What is needed is a splitter cable so
that both the normal monitor and TV can be used, or a direct lead if the
normal monitor is not required. The TV must have a SCART socket, as the
Sony does.
8.11
The lead is plugged in and the TV turned on first, and then the
computer. The computer should be configured to a MonitorType of Auto
which can be done using !Configure in the Apps folder or double-clicking
on !Boot for a Risc PC.
8.11
Appropriate leads with instructions can be obtained from Eastmond
Publishing. Splitter leads are about £18, including a stereo audio link,
or TV connection leads are about £14, again including audio lead.
8.11
Although the display is only of standard modes, the picture quality and
overall usability is, in my opinion, very good and clear enough for a
class of, say, 25 pupils up to about 15ft away. These are approximate
sizes just to give an idea of usability. Hence, it represents a very
good solution for overhead display if mounted on a wall bracket or tall
stand, particularly considering the price compared to a monitor. It can
also, of course, be used in daylight, unlike a video projector.
8.11
It should be noted that you cannot have an AKF60 or AKF85 (monitors
supplied with the Risc PC) on a splitter with the TV, as these monitors’
lowest scan rate is too high for a TV. However, if such a monitor is
swapped for an AKF50, both monitor and TV will display satisfactorily.
In modes 12, 15 and 24, the screen display uses part of the TV screen
with a smallish border around the edge, whilst in mode 36 (wide screen)
the display loses a narrow strip on the left, bottom and top, but would
still probably be my choice as the most suitable mode for display.
8.11
Mike Battersby, IT Curriculum Advisor, Kingston-upon-Thames
8.11
Problem with DOSMap command − The DOSMap command is very useful for
coping with the file extensions of DOS files. Thus, for instance, the
command DOSMap CSV &DFE will ensure that DOS files with extension CSV
are treated by RISC OS as if they had filetype &DFE. If a file icon has
been defined for this filetype, the files will appear with that icon
instead of the usual DOSfile icon. Unfortunately, there is a bug in the
RISC OS 3.10 DOSFS module which prevent the use of numbers in file
extensions. This is fixed in the DOSFS 0.49 (03 Aug 1994) and later
versions. This allows the mapping of the 123 extension to DB0 and many
others.
8.11
Brian Cowan, Wembley
8.11
Promoting Acorn (Why do we bother?) − Reading Keith Hodge’s comments
in Archive 8.10 p39 about the Harrogate show, I wondered if he’d been
reading my mail?! Keith’s view about the racket exactly mirrored my own
impression of the ’94 show. The organisers, Safesell, did say they were
planning to stick all the ‘ghetto-blasters’ in the naughty corner in
’95. But, if Acorn were the culprits this time, why do we bother?
8.11
Keith also raised the point about there being no Friday ‘business day’
this year and I support his view very strongly. When the Sat/Sun-only
dates were first announced, I wrote Safesell to suggest the error of
their ways − no reply. So I wrote the sponsors, Acorn User − no reply.
Why do we bother??
8.11
I couldn’t get to the show myself but persuaded the boss of a sister
firm to go on the Saturday. Their offices are equipped with
IBM-compatibles but, being used to the quality and price of stuff I’d
done for them, he was actively considering getting at least one Risc PC
with potentially more to follow. To quote his (partly censored) words:
“I had to queue for [beep] ages to get in and left after an hour. The
racket was dreadful and the place was crawling with [beep] kids. Why
didn’t you tell me the show was for games and education?”. Bang went my
credibility and, a week later, he bought two more IBM-compatibles. Why
do we [beep-beep] bother???
8.11
Jim Nottingham, York
8.11
Publisher bleeds − I wonder how many people have come across the
following ‘problem’ in Impression Publisher and, if so, does anyone know
a way around it? Publisher is ideal for printing pages ‘imposed’ and
ready to send to our printer, until you want to put bleed on pages.
Bleed is not required in the spine of a magazine, only at the head, foot
and fore-edge. Publisher adds bleeds to all 4 edges of a page, this
means that pages have to be printed out singly and then pasted into the
correct imposition.
8.11
I think Computer Concepts are aware of the problem, which cannot help
sales of this product in the professional printing marketplace. Most
printing companies would not want to start cutting artwork or films if
they were presented to them as Publisher does. (Incidentally, do other
Archive readers spend hours listening to classical music and recorded
messages whilst waiting for a human at CC to answer the telephone −
which they never seem to do?!)
8.11
Paul Cayton, West Yorkshire
8.11
Slowing down the Risc PC − On the Risc PC, programs with a large
wimpslot run slowly, and slow down the wimp. This is due to the time
taken to reprogram the IOMD to page in the application. The smaller page
size of the Risc PC and the larger possible size of applications means
that many more pages need to be reprogrammed. An 800Kb program requires
25 pages on a 4Mb A5000, or 200 pages on a Risc PC.
8.11
You can see this in action if you open two task windows, one small, say
640Kb and one large 8Mb if you can free that much. If you hold down a
key while the cursor is first in one window, and then in the other, you
will see an obvious slow down in the auto-repeat rate in the larger task
window. This is a particular problem when using the GCC compiler which
requires a large wimpslot.
8.11
Applications can get round that by using dynamic areas to store their
data − dynamic areas are not paged in and out − so, hopefully, all
future programs will use this method. It also reinforces the need for
programs to mask out wimp events that they are not interested in, to
prevent unnecessary task swaps.
8.11
Sergio Monesi, Italy
8.11
Squashed lines on Laser Direct (8.10 p32) − Computer Concepts told me
that they had found a way to solve Paul’s problem (but not Gerald’s) of
squashed lines on the Laser Direct. Unfortunately, I gather that this
new version will not be available until the autumn. In the meantime, the
effect can be almost entirely eliminated by turning half-toning for text
off, although if you do this, you will find that grey text will appear
either as solid black or white.
8.11
Jim Nottingham, York
8.11
TEX − The TEX typesetting language has been mentioned in Archive from
time to time. The PD RISC OS implementation of this, built by Robin
Watts, is very good. There are also a number of utilities which make
life easier for the Acorn user. Both DaTeX and SemTex are desktop
managers for the TEX system. SemTeX includes a definition file for a TEX
mode for StrongEd. Best of all is Paul Field’s DVIview which provided a
desktop viewer for documents, printing through RISC OS printer drivers,
and the saving of document pages as drawfiles − absolutely superb! The
package also includes a comprehensive set of Computer Modern fonts in
RISC OS format. TEX and the other programs are all available from HENSA
or from APDL, but I am not sure if these are the latest versions. I
obtained mine from the Oxford University FTP site.
8.11
Brian Cowan, Wembley
8.11
8.11
Hints and Tips
8.11
LaserDirect double flush − I asked for help last month (8.10 p25) with
what to do when I get a paper jam on my LaserDirect LBP8. (This turns
out to be one of those everybody-knows-about-it-except-me problems.)
Apparently, all I have to do is click on the LaserDirect icon on the
iconbar while holding <alt> down. This brings up a LaserDirect Status
window telling me the paper is jammed and offering me a way of escape
which I accept gratefully.
8.11
Many thanks to all those who wrote or phoned to tell me what a gumby I
am. I had been using the ‘Flush printer’ menu option from the ‘Printer
Queue’ window (adjust-click on the iconbar icon) instead of
LaserDirect’s own flush system − you stupid boy!
8.11
(Mind you, from some of the suggestions people made, like “hit
<f12><return>”, I suspect that I may not be the only person to have had
this problem and not realised how simple the solution was!)
8.11
Ed.
8.11
Printing from Basic programs (e.g. 8.10 pp21/47) − Here are a couple of
short points which may help. Firstly, ‘Page printing’ via a printer
driver.
8.11
The key SYS calls recommended for ‘proper’ printing via the desktop
still work in non-Wimp mode, so it is fairly straightforward to produce
hard copy of text output directly from Basic programs − albeit in
‘graphic/page printing’ style.
8.11
A sequence which certainly works is:-
8.11
DEF PROCprint
SYS “PDriver_PageSize” TO width%,height%,left%,bottom%,right%,top%
pf%=OPENOUT(“printer:”)
SYS “PDriver_SelectJob”,pf%,“Printer Test”
LOCAL ERROR
ON ERROR LOCAL:SYS “PDriver_AbortJob”,pf%:CLOSE#pf%
:ENDPROC
rect%!0=0
rect%!4=0
rect%!8=(right%-left%)/400
rect%!12=(top%-bottom%)/400
trans%!0=1<<16
trans%!4=0
trans%!8=0
trans%!12=1<<16
plotat%!0=left%
plotat%!4=bottom%
SYS “PDriver_GiveRectangle”,0,rect%,trans%,plotat%,&FFFFFF00
SYS “PDriver_DrawPage”,1,block%,0,0 TO more%
WHILE more%
SYS “ColourTrans_SetGCOL”,0
MOVE 0,(top%-bottom%)/400
............
(BASIC print commands − see text)
............
SYS “PDriver_GetRectangle”,,block% TO more%
ENDWHILE
SYS “PDriver_EndJob”,pf%
RESTORE ERROR
CLOSE# pf%
ENDPROC
8.11
The above assumes that you have a global error call in operation, and
you will need to add to the ON ERROR LOCAL line to restore to that call.
Also, you need to have declared certain variables earlier in the
program, such as...
8.11
DIM rect% 16
DIM trans% 16
DIM plotat% 8
DIM block% 16
8.11
All the normal Basic printing commands seem to work OK, i.e. PRINT,
PRINT TAB(), VDU8, 9, 10 and 11, but be careful of VDU28 and 31 (and,
of course, VDU1).
8.11
With care, you can therefore merely insert (at Basic’s print commands
above) the call to whatever routine puts your required text onto the
screen.
8.11
Secondly, what about using of text files? Although it isn’t printing
directly from Basic, there are some advantages in using text files, as
others have noted − not least being that your printer driver is likely
to use ‘character printing’, and you can view and edit via Edit, if you
want.
8.11
Extending the thoughts offered by others (and assuming you want to get a
hard copy of something you’ve put on the screen) then the following
PROCs can be used to put text line by line on the screen in the way you
want it and, at the same time, construct a corresponding text file for
subsequent dragging to your Printer Driver or into !Edit.
8.11
10 MODE27
20 file%=OPENOUT(“textfile”)
30 CLOSE#file%
32 *SetType textfile Text
40 PROCfile_and_centreprint(“Text File Test”)
50 PROCfile_and_blankline
60 PROCfile_and_printtab(10,“First Line at TAB 10”,TRUE)
70 PROCfile_and_printtab(10,“Second Line at TAB 10, but held ”,FALSE)
80 PROCfile_and_printtab(50,“to await this at TAB 50”,TRUE)
90 END
10000
10010 DEF PROCtextfile(textline$,return%)
10020 REM return% is TRUE/FALSE flag
10030 REM to tell BPUT# to make <RETURN> action after text or not
10040 file%=OPENUP(“textfile”)
10050
10060 REM Put pointer to end of file ready for more text.
10070 PTR#file%=EXT#file%
10080
10090 IF return% THEN
10100 BPUT#file%,textline$
10110 ELSE
10120 BPUT#file%,textline$;
10130 ENDIF
10140 CLOSE#file%
10150 ENDPROC
10160
10190 DEF PROCfile_and_centreprint(string$)
10200 REM Prints a string centred on screen,
10210 REM and puts a corresponding string into a text file.
10220
10230 LOCAL tab%,screenwidth%
10240 REM First find screenwidth in Mode being used,
10250 SYS “OS_ReadModeVariable”,-1,1 TO ,,screenwidth%
10260
10270 tab%=((screenwidth%+1)-LEN(string$)) DIV 2
10280 PRINT TAB(tab%)string$:REM To screen
10290
10300 line$=STRING$(tab%,“ ”)+string$
10310 PROCtextfile(line$,TRUE):REM Corresponding string to text file
10320 ENDPROC
10330
10360 DEF PROCfile_and_blankline
10370 REM Prints an empty line on screen,
10380 REM and puts a corresponding string into a text file.
10400 PRINT:REM To screen
10420 line$=“”
10430 PROCtextfile(line$,TRUE):REM Corresponding string to text file
10440 ENDPROC
10450
10480 DEF PROCfile_and_printtab(tab%,string$,crlf%)
10490 REM Prints a string on screen at the designated tab position,
10500 REM and returns a corresponding string for a text file.
10510 REM ‘crlf%’ is TRUE/FALSE flag to determine if screen printing
10520 REM** is to end with <Return> or not (i.e. semi-colon or not).
10530
10540 gap%=tab%-POS
10550 REM ‘gap%’ needs to be calculated before printing to screen.
10560
10570 IF crlf% THEN
10580 PRINT TAB(tab%)string$
10590 ELSE
10600 PRINT TAB(tab%)string$;
10610 ENDIF
10620
10630 line$=STRING$(gap%,“ ”)+string$
10640 PROCtextfile(line$,crlf%):REM Corresponding string to text file
10650 ENDPROC
8.11
I am still trying to get ‘character printing’ via a Printer Driver
direct from Basic!
8.11
(We have one that we have used at NCS for years. I’ll put it on the
monthly disc. Is that what you want? Ed.)
8.11
Ray Favre, West Drayton
8.11
Runny letters − Some people don’t realise that the ink used by inkjet
printers is water-based and is therefore not waterproof. This isn’t
normally a problem but it can become one when addressing envelopes! In
rainy weather, my postman often delivers letters where the address is
all but illegible, and if the ink had run in this way before it had
reached my local sorting office, I would probably never have received
it.
8.11
The solution is very simple. Most stationers sell a ‘fixer’ for use with
rub down lettering (Letraset etc.). This is actually a very fine, clear,
varnish in aerosol form. It’s quite expensive, around £3, but a can will
last many years. Just lightly spray it on the address or label (it dries
in a few seconds) and your letter will arrive safely even in a monsoon.
8.11
David Holden, APDL
8.11
Transferring text files using Hermes − There is an increasing interest
these days in exchanging text files between Acorn RISC computers and
PCs. There are two major differences − PC text files end with a ctrl-Z
(ASCII 26) character and have CR LF (ASCII 13 + ASCII 10) characters at
the end of each line. Acorn text files have only an LF character at the
end of a line and have no special end character. Hermes (v1.22 onwards)
is able to handle most of the conversion in either direction.
8.11
To convert an Acorn file to PC, open the Hermes application window and
display the Pipe parameters. Change the Line End to CRLF and click on
“OK”. Drag the text file to Edit, use <ctrl-down> to move the cursor to
the end of the file and add ¤CTRLZ¤, then resave. Ensuring that no
application has the input caret, drag the text file onto the Hermes
iconbar icon. After a few moments, the converted file will be piped to
Edit where it can be saved to the DOS disc.
8.11
To convert a PC file to Acorn, change the DOS file to Text (&FFF) and
open an Edit document, making sure it has the input focus. Drag the DOS
file onto the Hermes iconbar icon and the converted file will be sent
direct to the edit document with all the CR characters stripped out. The
ctrl-Z character at the end can be deleted manually.
8.11
Hermes raison d’etre is to facilitate transfer between packages and this
cross-platform interchange is an extension of that philosophy.
8.11
Mike Logan, Base 5 Technical Graphics
8.11
Underlining Impression’s bugs − If you are editing a style, and adding
‘Underlines 2’ to it in Publisher (4.05), make sure that any existing
text in that style does not have underlines set as an effect. If the
effect is set, strange things happen, and the window goes black!
8.11
Brian Cocksedge, Midhurst, W Sussex u
8.11
8.11
RISC OS 3.5 versus Windows 3.1
8.11
Keith Parker
8.11
Spurred on by Paul’s comments about needing copy for OUR magazine and by
Keith Hodge’s comments about Windows (8.10 p39), I am placing on record
my comments about these operating systems and some observations about
DTP and graphics software on the PC.
8.11
Speed
8.11
Booting up my Risc PC from cold is much quicker than Windows. This is
not just my Risc PC compared to the 486SXL card but sitting in TJ
Reproductions and watching Tony Tolver’s Risc PC booting up and
comparing it with his 486DX4. However, there is one area where I believe
Windows is faster than RISC OS, and that is in loading, accessing and
reading CD-ROMs. CorelDraw 3CD runs much more quickly than any Acorn
format CD I have via my NEC 2xi SCSI drive. Now, why is that?
8.11
Visualisation
8.11
Without doubt, the look of RISC OS is much nicer in 256 colours than
Windows, even taking into account the ability to change how Windows
looks. I also think that the icons are much easier to understand in our
environment than the alien form. (This was confirmed to me by the
Granada engineer who was replacing my dead power supply − this was his
first ever Acorn job, apart from seeing a Risc PC in their workshop −
yet he immediately knew which icon was which on the initial startup
screen.)
8.11
Features
8.11
Windows undoubtedly has a larger number of features than RISC OS, but
many are “gimmicky”. Admittedly, some are very useful, such as <alt-tab>
which brings to the front the bottom window (usually the Program
Manager) or the small buttons to maximise or minimise the current
window. However, I must say that, as an unfortunate regular Windows
user, the RISC OS desktop is far more productive and easier to use.
8.11
For example, I bought CorelDraw3 (only £41 +VAT from PC World on CD-ROM)
and if I double click on a .CDR file, it loads and runs CorelDraw3.
Then, if I want to load another picture after ending the first picture,
I have to watch the loading banner of CorelDraw3 again! The only way to
avoid this is to go through the file menu and choose OPEN and then
select. Once you’ve seen the loading banner a few times, you really
appreciate RISC OS 3! (The same Granada engineer sat at my Risc PC for
an hour after repairing my machine, having never used one before, and
couldn’t believe how easy it was to use.)
8.11
Hard disc space
8.11
The system (!Boot) file on my Risc PC takes only 25Mb, which includes a
14Mb FontDir partition, whereas PC DOS6.3 and Windows3.1 (neither of
which is fully loaded with all their features) takes 27Mb. If I had
fully loaded everything available, it would have been over 32Mb. (It
would be interesting to know about the space taken up by applications
like DTP packages. I suspect you would get similarly disparate figures.
Perhaps you could quote some sizes, Keith, when you do your DTP
comparisons. Ed.)
8.11
Shelf space − Manuals
8.11
An indication as to which is the most intuitive OS is the shelf space
taken up by the manuals. The Windows manual runs to some 300 pages on
top of PC DOS 6.3’s 563 pages. The RISC OS 3 User Guide for the Risc PC
is 570 pages, and that includes descriptions of how to use Draw, Edit,
Paint, Alarm, ARPlayer, Maestro, etc!
8.11
(My view is that Archive should not allow itself to be clogged up with
Windows matters. It should concentrate on RISC OS and only discuss
Windows and its applications when there is a specific requirement (such
as Xara Studio or PC CD-ROMs) or a request from a reader. After all, do
we all have to bore each other with Config.Sys and Autoexec.Bat’s?
Furthermore, I would have thought there were enough publications
covering the limitations of PC/MS DOS and Windows − not forgetting
OS/2.)
8.11
Virus security
8.11
I know from experience that it is relatively easy for your system files
on a PC to become screwed up with a virus whereas most of the important
parts of RISC OS are protected by being in ROM. Like other users, I find
this situation most reassuring, even if upgrading (if and when it
happens!) is not as easy as a simple disc-based upgrade. If you have
never had your computer screwed up by a virus, be very, very grateful −
it can take up a great deal of time and energy! Furthermore, the best
virus protection scheme I know of for any platform is that offered by
Pineapple which costs a mere £24 +VAT − PC and Mac schemes cost much
more!!
8.11
Could RISC OS learn from Windows?
8.11
Whilst I firmly believe that RISC OS 3.5 is a much nicer and easier
operating system to use, I believe that Acorn could learn quite a few
things from Microsoft. (After all, if you’ve seen Windows95, you will
see they’ve learnt from Acorn − iconbar et al.)
8.11
(At Acorn World last year, a Microsoft executive came past the Archive
stand and we “engaged him in conversation”, i.e. told him how much
better RISC OS was than Windows. “You ought to look at RISC OS”, we
said, “to see what a decent desktop environment ought to be like.” −
tactful as ever − and his reply was that they most certainly had been
looking at RISC OS − for quite some time! Ed.)
8.11
Here are some features (some ‘borrowed’ from Windows, some not) that
should be built into RISC OS 4:
8.11
a) Virtual memory. I know that programs like DA Picture, PhotoDesk and
Studio24 all have VM in place, but the OS should provide its own − all
programs would benefit and development costs could be reduced.
8.11
b) Pinboard to front. Many of us use Pinboard and whilst <shift-f12>
brings the iconbar to the front, it would be better if this could bring
forward the iconbar and pinboard together.
8.11
c) Better editor. Instead of developing its own, why not buy Zap and
replace Edit.
8.11
d) Better drawing package. Vector should be bundled in.
8.11
e) Better paint package. I don’t know which one, but it must handle
32-bit colour sprites.
8.11
f) New filecore. We need one that allows more storage − 512Mb is
pathetic − it needs to be 8 or, preferably, 16Gb.
8.11
g) New font manager. We have a fairly good system already but if
FontDir2 (when it’s released) were to be built in, it would make the
other systems (including Macintosh) look third rate.
8.11
h) Pantone files. This is expensive and the Acorn developers have not
got the money, so Acorn should buy the rights to bundle the Pantone
Colour Files within its colour picker!
8.11
I’m sure that there are many other items on other people’s wish lists.
Perhaps our new Clan Acorn columnists could compile our RISC OS 4 wish
list and let Chris Cox (and vitally Acorn) know what we want and need.
8.11
Now, a few DTP related items:
8.11
Publisher Plus v PageMaker5
8.11
Tony Tolver of TJ Reproductions uses Acorns, Macs and PCs all the time.
The Acorns run Publisher Plus, the Macs run QuarkXPress and the PC runs
Aldus PageMaker5. Whilst there are many things lacking in Publisher Plus
(£299), the poor speed and difficulties of using QuarkXPress (£799) and
PageMaker (£599) are laughable for programs costing 2-3 times more. The
worst thing is the speed − you would not believe how slow they are if
all you’ve used are the DTP programs from Computer Concepts. (Are CC
forgetting their Acorn DTP customer base or are there developments in
the pipeline for us Impression users? If not, there is always Ovation
Professional which looks good even in alpha and beta test versions!)
8.11
Tony has a customer (a school in Hong Kong) who used to do all its DTP
on its Acorn machines in Impression. Recently, it got a PC of some
description and decided that it should use a so-called “industry
standard package” − PageMaker5. They sent the discs containing the
layout and some photographs (50) to be scanned and dropped into place.
Tony reckoned it would take some 4 hours in Impression. After 8 hours on
a 486DX4, he still had 20 photos to do, and the 486DX4 is not exactly a
slow machine. Guess what? Tony is asking his customer to go back to
Impression, otherwise he will have to charge more to cope with an
inferior setup!
8.11
TJ’s file setup charges
8.11
Tony now charges a setup fee of £5 for all files prior to imagesetting.
Sorry, £5 for all files from Macs and PCs − there is NO setup charge for
files from Acorn packages − there is, generally, so little to do. This
charge would even apply to Xara Studio files, because of the platform
it’s created on!
8.11
CorelDraw3 CD
8.11
I mentioned above that I had purchased CorelDraw3. What an awful
program, but what a great package! I bought it for the clipart − 14,000
items of excellent quality. All you need to do is load them into
CorelDraw, select export as an CorelDraw EPS or Illustrator 3 file and
load the files into ArtWorks. There you have it, a ready-made clipart
collection for little or no cost but a little bit of time! The package
even includes a book with thumbnail pictures of all 14,000 items! Then
there are fonts in both TrueType and Adobe Type Manager formats. The
combination of ATM format and !T1toFont is interesting!
8.11
Acorn DTP versus PC/Mac DTP
8.11
Finally, Mark Howe asked me to do a comparison between Impression
Publisher (and Plus) and PageMaker 5 and QuarkXPress 3.3. This was some
8 months ago but, due to family illness, this has only continued very
slowly. He also asked me to keep it to about 600 words − which is
proving to be impossible. I am working on a list of the features of each
program which will appear in a future issue of Archive (hopefully this
side of Christmas 1995!) and lead to people asking about dealing with
Impression’s omissions. Rest assured, there is usually a work-around;
witness the superb quality of LandMobile, a monthly full colour glossy
magazine produced entirely on Acorns!
8.11
I hope this article has been of interest and that it will generate some
debate. Please contact me at: 33 Fieldend, Twickenham, Middlesex TW1 4TG
or on 0860-919216, so we can give Paul some more pages to set! u
8.11
8.11
Puzzle Corner
8.11
Colin Singleton
8.11
Many thanks to all the readers who sent solutions and comments −
including those who were barking up the wrong tree! These give me an
insight into the way people set about solving these problems, and
indicate the likely pitfalls. One puzzle which proved rather difficult
was ...
8.11
(14) Very Acute
8.11
Nick Craig-Wood, of Leatherhead, did eventually find my eight-triangle
solution independently, but too late for submission. Apparently the
inspiration came to him in the shower − I am not sure whether this
indicates a recommended approach.
8.11
(18) No Progress
8.11
This, too, caused some problems. Several readers apparently assumed that
the best solution (the one with the smallest value for the highest
number) for a given length of series will be found by adding another
number to the previous series. This is not always true, as the solutions
published last month show. Several readers solved the order-16 problem,
but the order-12 solution proved elusive, perhaps because it does not
include the number two. Only Nick Craig-Wood found this solution − by C
programming, rather than by shower-power − so he wins the prize.
8.11
(19−21) Waterfall? − Till Death Us Do Part − Loony Post
8.11
Everyone who tried the first two got them right, but the third proved
slightly more difficult. Several entrants found the correct stamp
values, but most probably did not prove to themselves that the solution
is unique. The prize goes to Mrs A R Miskin of Loughborough. She was the
only entrant who gave credit to Archimedes by name − the principle, not
the computer!
8.11
(22) Differences
8.11
If, as in this case, the number of integers is a power of two, the
difference process always produces a line of zeros; if not, it never
does. If four non-integer numbers are allowed, it is then possible, but
still not easy, to find a set which never produces all zeros. The four
numbers must be a+b, a.x+b, a.x²+b, a.x³+b where a and b are any
constants, and x is the real root of the equation x³ = x² + x + 1
(approx. 1.83929).
8.11
No set of integers can satisfy this relationship precisely, but any
which comes close to doing so will require a large number of
applications of the difference process to produce all zeros. The best
approximations for this process are obtained by using four consecutive
terms of the series 1 1 2 4 7 13 24 ... , in which each term is the sum
of the previous three, and the ratio of consecutive terms tends towards
1.83929... .
8.11
The last four numbers in this series which are less than 1,000,000 are
121,415 223,317 410,744 755,476. This set of numbers, and others simply
derived from it, are (I think!) the only ones <1,000,000 which require
36 difference operations to produce four zeros. That is the theory,
which is probably not common knowledge among Archive readers! It will be
interesting to see what results are achieved in practice, by
trial-and-error, or whatever.
8.11
(23) Similarities
8.11
The sides of the first triangle must be p.m³, p.m².n, p.m.n², and the
sides of the second p.m².n, p.m.n², p.n³, for any integers p, m, n. The
difference between the non-common sides is therefore p.(m³ − n³), which,
in this case, = 387. The only solution is p=1, m=8, n=5, giving sides of
lengths 512, 320, 200 and 320, 200, 125.
8.11
(24) Rhymes
8.11
I wonder how many readers will be brave enough to declare that the only
English words ending ~shion are fashion and cushion, and that there is
no word which rhymes with month? Edward Lear ‘solved’ the second problem
with the word one-hundred-and-one-th (101th)!
8.11
(25) Pythagorean Fractions
8.11
The general solution (which you didn’t need to know) is x = m4 − n4
y = 2.m.n.(m² + n²) z = 2.m.n.(m² − n²), for any different integers m,
n. Setting m = 2, n = 1 gives the simplest solution x = 15, y = 20,
z = 12.
8.11
This month’s prize puzzle ...
8.11
(26) Race Tracks
8.11
The diagram shows a circular racetrack with a circumference of 3100
metres. Six posts have been erected as shown, at distances 0, 100, 300,
1000, 1400 and 2600 metres from a given fixed point. By judicious use of
these posts as start and finish points, it is possible to run a race of
any multiple of 100m from 100m to 3100m (one lap). Furthermore, astute
readers will observe that there is only one ‘choice’ of start and finish
points for each distance.
8.11
To meet these conditions, the circuit-length using P posts must be
P.(P-1)+1 units. Try as you might, however, you will not be able to
place seven posts on a 4300m track to offer this facility. But you can
place eight posts around a 5700m track to allow any race-distance from
100 − 5700m. Three of them are shown in the diagram on the right, at 0,
100 and 300m. Can you find the positions of the other five?
8.11
This month’s prize quickies (27−29)...
8.11
(27) Overlapping Squares
8.11
The diagram shows a 4×4 square and a 5×5 square, overlapping. One corner
of the large square coincides with the centre of the small square, and
the large square has been rotated to divide one side of the small square
1:3. What is the area of the shaded overlap region?
8.11
(28) Harems
8.11
Wishing to augment their harems, the Sheiks of Licentia enacted that the
mother of a son must bear no more children, but so long as she bore
daughters, she must continue childbearing until she produced a son.
Thus, every family would include just one boy, but any number of girls −
available for the harems! Assuming that each birth has a 50−50 chance of
being male or female, and if it were physically possible to obey this
law, what would be the overall female/male ratio, and what would be the
average family size?
8.11
(29) Back to Basics
8.11
What are the next two numbers in this series? (10, 11, 12, 13, 14, 15,
16, 17, 20, 22, 24, 31, 100, ?, ?)
8.11
Comments and Solutions
8.11
Please send comments, contributions and solutions to me at 41 St Quentin
Drive, Sheffield, S17 4PN. Solutions by Friday 11th August, please. u
8.11
8.11
Multimedia Column
8.11
Paul Hooper
8.11
More multimedia
8.11
When I first started writing this column a couple of years ago, it was
known as the Genesis/Magpie Column as these were the only two multimedia
authoring programs available at the time. Since then, Key Author,
Optima, CableNews 2 and Ultima have come onto the market. Now, each of
these programs has had a dedicated following, but none has knocked the
top two off their perch. But this could change with the announcement
that the top selling HyperStudio is to be converted from the Apple to
both the PC and Acorn platforms.
8.11
For those that have not seen this package, it is extremely easy to use
and construct an application. It won this year’s Silver Award from
Educational Computing and Technology, in the secondary sector. From what
I have been able to gather, you will be able to start creating an
application on an Apple and then finish it on an Acorn. Quite how the
problems of different formats of discs can be overcome isn’t made clear.
The provisional release date is August this year and, if the programmers
can overcome the problems that Oak and Anglia have had, HyperStudio
could become the first package to be available for all three platforms.
8.11
Anglia CD-ROMs
8.11
Following on from the above, take a look at the new Anglia TV CD-ROM’s
that have just come out. These are written using Key Author, and are now
available for not only Acorn, but also PC and Mac. Titles include Garden
Wildlife, Castles (Version 2) and Animals in Art. What makes these stand
out from the run-of-the-mill CD-ROM, is that the same disc can be used
on all three different machines! Looking at the structure of the
CD-ROMs, it becomes apparent that many of the resources are shared
across all three different formats. Many of the movies are also in MPEG
format, as well as Replay and QuickTime. As an experiment, I ran the
Garden Wildlife using the Risc PC in PC mode. The stunning thing was
that there was little difference between that and the RISC OS version.
8.11
‘New literacy’
8.11
The phrase ‘New Literacy’ has been bandied around a lot in the past few
months. It refers to teaching children the skills they will need to make
sense of their new multimedia world. The analogy of literature seems
particularly appropriate since, at the moment, we teach our children to
both read and write. Yet all the hype that is surrounding multimedia at
the moment seems to centre on the children being passive readers of
CD-based multimedia applications. Any teaching of the ‘new literacy’
must include writing multimedia, as well as reading! If there are any
teachers out there who are unsure how to write an application and would
like some help, maybe we can get a group together in a local school for
a day and run a multimedia training course. Let me know what you think.
8.11
Databases and multimedia
8.11
Long term users of Genesis will remember GenTools, which allowed you to
create a database within Genesis II. It came as part of the package and
was easy to use. Yet Genesis Professional no longer contains this
application, and it appears from the manual (p.42) that Genesis can no
longer display CSV files. Indeed, if you use GenTools to create a
database, Genesis Professional will not display it.
8.11
I must admit that I gave up on this problem some months ago, but a
chance remark to Tony Holdstock at Oak resulted in him sending me an
application which included a database.
8.11
Having analysed the page, I have now been able to create a database
within the Man in Space application. If you want a new copy of this
application, send a HD disc to the address at the end of the column.
8.11
Key Author can use a Key Plus file to create a database within an
application, although I have yet to explore how to do this. I aim to
convert the Man in Space application to this format in the next few
months, so I will report back then.
8.11
Magpie goes CD
8.11
A new CD-based version of Magpie has appeared, which not only contains a
full version of Magpie (1A.50b), but also a number of example binders.
These are of mixed quality, but do give some good ideas of what can be
achieved with this program. Also on the disc are a lot of resources
which can be used in your applications. These include sound samples,
clipart, backgrounds, graphics and even Maestro tunes. Also included are
some pictures from ‘The Decades’ series, which gives beginners enough
resources to start making their own applications straightaway.
8.11
There are also a few enhancements in this new version. You no longer get
stuck with the tool you were using outside the Magpie window. The
compaction seems to have been increased, and you now get the ability to
play an audio CD track while a binder is displaying.
8.11
Genesis for Windows
8.11
Having just obtained my PC Card and the Windows version of Genesis, I
have now started to try and convert some of the applications to PC
format. I took a very simple application and transferred it from RISC OS
to my PC Drive and re-filetyped the pages to DOS. Needless to say, it
didn’t come up in Windows. At the moment, I am a bit stuck, but I
will experiment and report back in the next few columns.
8.11
The Swap Shop
8.11
I have updated the Catalogue to include the new applications that have
come in over the past few months. If you want a copy, then either
download it from Arcade BBS, or send me a disc to the address at the end
of this article. Many thanks to all those who have sent examples in over
the last couple of months. After recent talks with both Oak and Longman,
both companies are interested in putting together a CD-ROM of all the
applications in the Swap Shop, plus some of their own. If any
contributor does not want their binder to appear on the CD, please do
let me know. I’m afraid that I have lost track of some of the authors
that I have credited in the column.
8.11
The number of different applications now stands at over seventy, and
many are available in at least two formats, so it is no longer possible
to put a catalogue with examples on the monthly disc. What I have done
is to create a small Magpie binder with a list of all applications, but
with no description.
8.11
The end bit
8.11
Having invested in a modem at AW last year, and got to grips with the
manual, I have now placed a copy of the latest swap shop catalogue on
Arcade BBS. You can leave me a message requesting Swap Shop items on the
board but, to avoid filling up the boards with applications, you will
still have to send me the discs.
8.11
If you have any hints and tips or questions on multimedia, or if you
require a swap shop catalogue, please write to: Paul Hooper, 11 Rochford
Road, Martham, Great Yarmouth NR29 4RL. (01493-748474) u
8.11
8.11
Pocket Book Column
8.11
Audrey Laski
8.11
Power pack blues revisited
8.11
Last month, I mentioned that my Power Pack had stopped working for a few
hours and then resumed; alas, just after the column came out, it stopped
again, dead. I sent it back to Avie Electronics who explored beyond the
lead replacement I had asked for on the previous occasion, and
discovered that there was damage in the plug itself. It became clear
that old age and hard use had caught up with it, and I’m having to get a
new one. I now have to think seriously − in trying to be economical with
batteries, have I been extravagant on the life of the Power Pack? I
certainly did work it hard, because I was using it so much at home
(usually in bed) or in a college office where I could easily plug in. I
must do some sums, using Calc of course, to decide where true economy
lies.
8.11
All thumbs!
8.11
John Molyneux of Runcorn, writes enthusiasticly about the Psion. He has
had one for about two years and now his wife also has a Pocket Book
which she pops “in her white coat when round her hospital wards”. What
particularly impresses him is the total portability, which he
illustrates by explaining how he manages to use his machine for writing
while walking his dogs across country in the early morning.
8.11
His system is to type, not with the customary two fingers, but with the
thumbs. “The Psion 3a is held by both hands, the display supported on
extended index fingers with the rest of the fingers curled under the
keyboard. This leaves the thumbs hovering over the keyboard at the right
angle. Each is able to reach more than half way across the keyboard.
Anyone used to two finger typing will now be perfectly at home stabbing
at keys. As a small bonus, I find that the side of the thumb is in fact
narrower than the flat of the index finger and so is less likely to hit
more than one key at a time.”
8.11
When I tried this I found that it must be valid only for people with
fairly big hands or long thumbs; mine didn’t meet in the middle. John of
the other side of the bed, who has remarkably small hands and feet, had
the same difficulty. However, the idea seemed too good to lose over a
little physical disproportion, so we started experimenting with other
holds. What works for John is to support the Pocket Book on the little
finger and the side of the palm of each hand, and for me to use the full
length of the edge of my palms; this gives short thumbs a good enough
starting position, though we haven’t been practising for long enough to
become skilled yet. As we do it, a little care is needed to keep the
other fingers out of the way of the screen. One problem I may find is
that incipient arthritis sometimes gives me gyp at the base of the
thumbs, and the “’ammer, ’ammer ’ammer” on the keyboard might make this
worse − time will tell.
8.11
John Molyneux also cautions against trying to use this technique when
walking in new places or in traffic, for obvious reasons. He also has to
beware of letting it absorb him too deeply, even on a familiar walk:
“Three seconds is plenty of time for my four legged charges to roll in
something that’s been dead for weeks...Pooh!”
8.11
Endnote
8.11
There still isn’t the quantity or range of material there used to be in
the column. Please write! u
8.11
8.11
ARM Programmer’s Guide
8.11
Neil Hutchinson
8.11
The following is intended not as a full ‘book review’, but merely as a
pointer to a book that I stumbled across which will surely be of
interest to many Archive readers. The book is The ARM RISC Chip: A
Programmer’s Guide by Alex van Someren and Carol Atack (ISBN
0-201-62410-9), published by Addison-Wesley at £24.95 (£25 inc p&p
through Archive).
8.11
The cover of the book is flashed with the words “as used in the Apple®
Newton™” but, as we well know, Acorn have found a far better use for
“the chip”! The authors are respectively an ARM-specialist and a
technical author (Carol Atack’s name will be familiar to Fireworkz
users, as she co-wrote the manuals) and the book has been produced in
collaboration with ARM Ltd.
8.11
The book is aimed at “a programmer or systems software engineer looking
for the definitive programmer’s guide and reference to the ARM
architecture”. I have to confess that I am not an expert programmer
(least of all in Assembler!), yet I found the book extremely stimulating
and useful. Anyone who has dabbled in assembly language programming, on
any platform, will find its clear explanation of the ARM instruction set
and syntax very interesting indeed. For those who are regular ARM
assemblers, this book would seem to be a must!
8.11
I have to state now that the book is not, nor is it meant to be, a
beginner’s guide to programming in assembler. However, its style is such
that anyone with an interest in the topic would gain by having an
extended perusal of its contents.
8.11
The book is divided into chapters as follows:
8.11
• The history of the ARM CPU: a brief history of Acorn Computers,
ARM Ltd and the development of the ARM chips now familiar to us
8.11
• The ARM6 CPU core architecture: an explanation of the CPU’s
modes and registers
8.11
• The ARM development environment: the relationship between the
CPU and the ARM Software Development Toolkit (including compilers)
8.11
• The ARM6 integer instruction set: a summary of the ARM
instruction set, with examples that demonstrate its flexibility
8.11
• Aborts, exceptions and interrupts: the use of exception handlers
8.11
• ARM architecture extensions: the extensions to the ARM6 series
chip (including the ARM600 and ARM610)
8.11
• ARM CPU hardware and interfacing: the various interface
techniques of the ARM6 family
8.11
• ARM CPUs, derivatives and support ICs: the history of the
various ARM chips in detail (with a look forward to future
developments), plus a detailed description of the ARM floating point
accelerator and video/audio controller chips
8.11
• The ARM floating point instruction set: the ARM implementation
of floating point arithmetic.
8.11
The rest of the book is made up of well over 100 pages of Appendices
detailing the ARM instruction set and assembler directives. Throughout
the book, there are examples of ARM code to illustrate the main
points. u
8.11
8.11
The Mac is Not a Typewriter
8.11
Adrian Look
8.11
A book review of ‘The Mac is Not a Typewriter’ in an Acorn magazine
might seem a little incongruous, if not bordering on heresy. However,
this book is written by Robin Williams, the author of the excellent
‘Non-Designer’s Design Book’ and, on this merit alone, deserves a closer
look.
8.11
‘The Mac is Not a Typewriter’ is the predecessor of ‘The Non-Designer’s
Design Book’ and is billed as ‘a style manual for creating
professional-level type on your Macintosh’. Its aim is to highlight and
explain some of the essential differences between traditional typing
skills and typesetting. Robin Williams offers some truly elementary
conventions which everyone should know about − but many of them seem to
have passed us by. As a result, although the book is aimed squarely at
the absolute beginner, it should help almost everyone to improve the
overall impact of their documents.
8.11
There are twenty chapters (seventy-two pages), each of which can be
digested in a couple of minutes and applied almost immediately. This
means that you don’t have to read the book from cover to cover and you
can skip the hints and tips that you already employ. These include
topics such as: understanding proportional type, quotation marks,
apostrophes, dashes, special characters, accent marks, underlining,
capitals, kerning, fonts, tabs & indents, widows & orphans, hyphenations
& line breaks, leading, justification, hanging punctuation, serifs,
using typefaces, and a whole lot more.
8.11
The problem with this book is that it is written for the Apple Mac. What
would be a superb beginner’s guide to typesetting is marred by the fact
that not all of the keypresses and examples are relevant to Acorn users.
As an integral part of the text, this could be very confusing for the
uninitiated. If a separate sheet showing all of the Acorn keypresses and
examples were produced, much of this confusion could be dispelled. (I’ve
done one for it − no extra charge! Ed.) However, even with this
addendum, there are parts of the book that might still mislead − most
especially the references to ‘city named fonts’. (This is explained on
my sheet. Ed.)
8.11
This is not to say that this book is useless to all Acorn users − far
from it. It offers some very practical advice that, if heeded, can
significantly improve the feel of your documents and quite clearly
demonstrates the differences between ‘professional’ and home-grown
desktop publishing. All of the principles covered are relevant to Acorn
users, but I suspect that many beginners will find the integration of
the Mac examples too confusing. If, however, you feel more confident
with your computer and are simply looking to improve your DTP skills, I
can whole-heartedly recommend this book as essential reading. u
8.11
8.11
Face to Face − Flight Simulator
8.11
Christopher Jarman
8.11
This is, I believe, the most recent flight simulator to be launched on
the Acorn market and it is a worthy addition to the list. It comes from
the ‘Flight Sim Toolkit’ stable but is generally smoother in
operation than any of the others that I have seen, and the landscape is
much more complex and well drawn. It is also remarkable in that the
graphics were designed and constructed by Adam Garbutt who started it
two years ago when he was only 13 years old. He must surely have a good
future ahead of him in games!
8.11
Face to Face comes on two HD discs and installs easily in the usual way.
It will run on any Acorn machine including the Risc PC, and needs 2Mb of
RAM. It opens with a pilot’s desk in, presumably, a World War II
officer’s hut. You choose the kind of weather you want, the name of the
pilot, how detailed you need the landscape and your mission. Before
taking part in the Battle of Britain (for that is where we are in this
game) the trainee airman has a chance to fly from the snow-covered
airfield on training flights just to get the feel of the thing. Then you
have to pass a short but simple exam to get your wings.
8.11
On arrival at the first-line squadron, a rather supercilious CO in
leather flying gear asks you a number of questions and you can get
involved in this, or type GO and get straight on with the flying.
8.11
The flying is good fun and I liked the fact that a certain amount of
navigation is also required. There are plenty of places on the ground to
look at and to provide reference points. Clearly, someone with real
aircrew experience advised on this, and the little touches such as
target towing practice and air/sea rescue operations have a ring of
authenticity about them. Dogfighting is difficult, and I will need a lot
more practice before I can become an ace or win any medals. What I
admire about this game, however, is the way it is possible to have a lot
of enjoyment just swanning around and exploring, without necessarily
having to do battle.
8.11
The accompanying instruction manual is clear and concise. There are 30
missions in all to work through, and the first five are just to
familiarise yourself with the airfield and surrounding countryside.
8.11
The landscape is the southern Kent coast in 1940 with the French coast
in view. You patrol along the beaches and the white cliffs of Dover,
happily looking for enemy aircraft to intercept. There are ground
targets to practise on and a towed target too. Also, when you look
behind you there is usually a chum doing victory rolls and generally
being supportive in his Spitfire or Hurricane.
8.11
I would not like to be considered too niggly over what is essentially a
clever and entertaining flight simulator, but three things worried me
slightly. Firstly, the overall colouring is a bit dark and would look so
much better if brightened up a lot. Secondly, I found that all the
missions I attempted, resulted in telling me “Mission Completed” even
when I had merely crashed on take-off. Surely there needs to be some
discrimination between missions attempted and missions successfully
fulfilled?
8.11
The last gripe? Well it is not confined to this program by any means,
but all products should be thoroughly checked for spelling mistakes by
an independent person before launching. There are too many in this one
for a serious commercial game.
8.11
Face to Face is supplied by SYRASoft at £18.99, but there is no VAT as
SYRASoft are not registered for VAT.
8.11
8.11
Publish Art − The Ultimate?
8.11
Gabriel Swords
8.11
Smart DTP, the publishers of Publish Art, say it’s ‘the ultimate DTP
resource − a massive collection of over 1,500 designs − more than 13Mb
of original artwork, compressed onto 8 discs’. At £35, they could be
right!
8.11
Smart DTP are also the publishers of Smart Borders and Smart Resources,
reviewed in Archive 7.11 p72 and Publish Art brings together those older
collections, plus a load of new designs, into a single DTP resource
pack. This isn’t a pack of cartoons, animals and trees, rather, it’s a
collection of devices which are meant to liven up your posters, flyers,
mailshots, etc. For those of you who already have some of their earlier
collections, there is a special price for upgrades.
8.11
According to Smart DTP’s own publicity, ‘Whether you’re telling the
public about the summer carnival or telling your customers about your
latest special offer, Publish Art will turbo-charge your DTP software,
allowing you to translate your wildest ideas into print. The resources
have unlimited uses in DTP, multimedia and graphics work’. Well, they
seem pretty confident, so does it measure up to their claims?
8.11
The first thing I’ve got to say is that there are some designs I would
not be seen dead using. In fact, if you buried me in one of the tartan
backdrops, I’d come back and haunt you − there are some amazingly gaudy
designs. These are in the minority and as tartan caps are a big seller
in certain parts of the world, I could be wrong! There are a lot of very
good and very useful designs and devices, and as the collections come in
either Artworks or drawfile format, they can easily be altered and
adapted to suit your particular needs. Indeed, the guide supplied with
the collection encourages the user to adapt and alter the designs.
8.11
Twelve topics
8.11
To make life simple, the collection has been divided into 12 topics, as
follows:
8.11
1. Backdrops: This section contains 89 A4 backdrops, ranging from a
background of bubbles to the hideous tartan already mentioned.
Backgrounds can be very useful if used carefully. Although the
backgrounds are A4 size, they don’t have to be used at that size. They
can easily be re-scaled, so you don’t have to use them to cover the
whole page of your document − you could just use them to highlight a
particular area.
8.11
2. Borders: 150 in all. Unlike the section devoted to Impression users,
these are complete border sets which can be dropped into your DTP
software or used in a drawing package.
8.11
3. Corners: 120 corners − there are zappy ones, traditional, ornate and
simple ones, and even a Union Jack one!
8.11
4. Designs: These are made up of highlighting devices, combined with
words, e.g. ‘Wham’ inside a flash-graphic, or ‘Merry Christmas’ with a
Christmas scene underneath, or ‘Special Offer’ inside some other design
− that kind of thing. If you don’t like the words in the particular
graphic, you can always separate them and put them into something else.
8.11
5. Drop Caps: You get 24 different designs applied to every letter of
the alphabet, making a collection of some 624 letters in all!
8.11
6. Highlights: As the name suggests these are meant to highlight certain
aspects of your document − they include arrows, speech and think
bubbles, flashes, tags, underlines, scrolls, circles, signs and marks.
8.11
7. Impression Borders: These are like the borders section − but with
200 Impression borders − and are made up of single lines rather than
complete borders. If you use Publisher, you will also be able to use the
collection of irregularly shaped frames included in this section.
8.11
8. Page Layout: A collection of headers, footers, margins, titles and
rules. The idea is to use, say, a header design to brighten up the top
of your page or a fancy rule to divide up sections within a document.
8.11
9. Patterns: There are over 140 colourful designs. Each is a 2cm square
combining a different design. They can be used to design your own
backgrounds, or combined with stencils or other shapes to produce some
quite interesting looking textures.
8.11
10. Quickpaper: These are page templates with certain design elements
already included. Templates include things like Congratulations,
Warnings, Remember, Wanted Poster etc.
8.11
11. Stencils: These are white masks meant for overlaying onto pictures,
etc, so that they only allow a portion of the picture to show through.
There are flashes, clouds and various other shapes.
8.11
12. Symbols: Over 330 items including general symbols, bullets, shapes
and silhouettes.
8.11
A word of warning about the colourful designs. Some of the designs are
made up of four-colour separations. While this is fine for normal
printing, it could cause you problems if you incorporate a design into a
document which will later be separated to produce film for professional
printing. If you are not careful, you could end up with four pieces of
film instead of two for a simple spot colour.
8.11
Conclusions
8.11
They say, ‘...Publish Art features resources that will allow you to
transform boring documents and produce your own eye-catching posters and
notices in no time at all. The collection offers a unique and versatile
approach to DTP and is designed to complement your DTP and drawing
software perfectly’.
8.11
Publish Art is aimed at education, business and the serious home user.
As long as you are selective in your use of the Publish Art resources, I
am sure that you really could come up with some very eye-catching
designs. The great benefit of this collection is that you don’t have to
wear yourself out trying to think up original designs. The temptation,
of course, is to throw everything at the page in the vain hope of
attracting people’s attention − no doubt you will attract their
attention, but for all the wrong reasons. A simple design, with just a
few eye-catching details is probably better than a page covered in
flashes, stars and arrows.
8.11
Negatives? None really. There are, inevitably, a lot of designs you
won’t ever need − and there are, as already mentioned, some quite
hideous ones. I wouldn’t call it the ‘ultimate DTP resource’ (because
there’s bound to be an ‘Ultimate II’ sometime) and I wouldn’t say the
manual was ‘comprehensive’, but it is a very useful collection and, at a
launch price of only £35, you can’t really go too far wrong. I would
certainly recommend it.
8.11
Publish Art costs £35 from Smart DTP. For upgrades from earlier
collections, contact Smart DTP at 36 Park Road, Duffield, Belper,
Derbyshire, DE56 4GR. u
8.11
Following our usual policy of finding products that come out well in
reviews, we have arranged a special deal with Smart DTP. For a two-month
period, Publish Art is available to Archive subscribers at a special
offer price of £30. Please specify whether you want Artworks or Draw
format.
8.11
Footnote: One of our subscribers expressed the view that ‘Gabriel
Swords’ had to be a nom de plume. He then asked whether it was really me
doing the writing under that name. I admit that I used to use nom de
plumes (Timothy Edwards, Chris Searle, etc) in the days when I wrote for
Acorn User, Micro User, etc but if I do get time to write anything
myself for Archive, I put my own name on it.
8.11
Gabriel is, in fact, a very good personal friend of mine − he assures me
that ‘Gabriel Swords’ is the name on his birth certificate. Until two or
three years ago, Gabriel was an ardent Mac user. He kept looking over my
shoulder at the Acorn machines and one day he asked if he could have a
go with Impression − and was hooked! He now uses Acorn machines in the
DTP business he has set up under the imaginative title of AngelWords. So
if you need any DTP work doing why not give AngelWords a ring on
01603-452807? (Well, he deserves a free plug for his business − he’s
written about twenty articles and reviews for Archive over the last
couple of years.) Ed.
8.11
8.11
PD Column
8.11
David Holden
8.11
Last month, I wrote about some of the things an author should consider
before writing Shareware. That was intended to try to help a prospective
author understand how his approach needs to be rather different from
that adopted when a program is to be distributed by conventional means.
This month, I shall deal with some of the physical aspects of writing
the program and describe some practical steps that can be taken to
encourage registration.
8.11
It’s got to be better
8.11
Shareware, as I have already remarked, is not cheap software, neither is
it inferior to an equivalent commercial program. In fact, it has to be
better than its conventionally distributed competitors. Some people
might find this surprising but, in fact, it’s perfectly logical.
8.11
When you buy a ‘normal’ program, you pay first. Then, when you’ve
discovered that the program isn’t quite the answer to all your prayers,
it’s too late. No program is perfect. They all have quirks, bugs and
minor glitches. They never do exactly what you want. By the time you
find out that the reviews ‘forgot’ to mention some of these ‘minor’
problems, it’s too late and, unless the program was seriously
misrepresented in some way, you are not going to get your money back.
Usually, this means that you will have to learn to use what you have,
find ways around its shortcomings, and hope that the bugs will be fixed
in an update − for which you will probably have to pay yet more money!
8.11
Having a large number of programs from which to choose (a rare luxury
with the Archimedes) doesn’t improve things. Even if you devour the
reviews and bombard those more knowledgeable with questions, you will
probably not be able to discover whether the program really suits your
purpose until after you’ve paid. If there are alternatives, it could
become very expensive if you have to buy a copy of each to find out how
good it is and, in reality, that’s the only way. Trying it in a showroom
for a few minutes with a ‘helpful’ salesman busily demonstrating the
good points while glossing over the shortcomings, isn’t really good
enough.
8.11
With a Shareware program, the exact opposite is true. You can try the
program at your leisure on your own computer, in your own time, in your
own way and without anyone looking over your shoulder. If it doesn’t
suit you, you don’t pay. If there are problems, the chances are you will
discover them before you have parted with any cash.
8.11
This is, of course, of immense benefit to the purchaser, but it is
something that the author must keep firmly in mind. Once someone has
parted with their money they are committed, and this normally means that
they will have to persevere and learn to use what they have bought. If a
Shareware program is difficult to master, the user will probably give
up. It is absolutely vital that if you want your program to succeed, the
user must be able to get to grips with it quickly, easily, and without
aggravation.
8.11
This requires the author to adopt a slightly different approach.
Feature-packed programs which do everything you could possibly need (and
more besides) don’t often appear as Shareware. Those lists of impressive
features make good editorial and advertising copy for magazines but, for
the average user, they don’t mean much. The Shareware author needs to
present his customer with a program that sells itself, and this means
that the user must be able to install it quickly and put it to work.
8.11
With a conventional program, if the manual is cryptic and not very
helpful, he will be forced to try to decipher it, or seek further help,
no matter how time-consuming. With a Shareware program, there is not
this financial incentive to make the program work. If the user can’t get
it to do what he wants, he will give up.
8.11
So, Shareware must be easier to use and have better documentation than a
conventional equivalent. Very few of the programs distributed by normal
means would survive for long if they were sold as Shareware!
8.11
Documentation
8.11
I have written at length about this before, but it is one of the most
significant aspects of a successful program. An adequate program with
good documentation will outsell a good program with poor documentation.
If your manual is poorly organised, not very helpful, or is badly laid
out, your prospective customer won’t be able to use the program
properly, so he won’t register! It’s as simple as that. You aren’t
toiling over the keyboard writing a superbly informative manual because
you want to impress the user − you are doing it because you want his
money!
8.11
Obviously, not every program will be complex enough to need a large
manual, but if it is necessary, it should be in the form of a straight
ASCII text file. That is the only universal means of distributing a
document. A nicely laid out Impression file might seem like a good idea,
and you may choose to include one with your program, but what if your
customer uses Ovation, or EasiWord, or only has a dot matrix printer and
doesn’t want to wait for hours while forty pages are printed?
8.11
Assume that the text is going to be printed on a DM printer and it can
then be printed on anything. Most experienced Shareware addicts keep an
old printer and some cheap paper for exactly that purpose − I certainly
wouldn’t want to waste my expensive paper and toner when I might discard
the program after I had tried it.
8.11
For the same reason, avoid all ‘special’ characters − stick to the
standard ASCII 32-126, otherwise some very peculiar things could appear
when it is printed. Don’t forget that if you save a textfile from
Impression you will get ‘smart quotes’, and most printers will print
something completely different from what you intended. It’s worth a few
minutes of your time to replace these with the standard double and
single quote characters.
8.11
There are lots of other things you should be aware of in writing your
manual, and I shan’t enlarge upon them at this time, but do take the
trouble to make it properly formatted and easily printed. Remember it’s
a major part of your ‘shop window’ when someone first sees your program.
Your aim is to convince this person that you are competent, and that
your program will do what he wants. If it is badly written, poorly
punctuated and misspelt, he will not be impressed.
8.11
Acorn’s Help utility is very useful, but it is no subsitute for good
documentation. It is useless at informing the user how to carry out a
series of operations. Its purpose is to describe the use of individual
items. Imagine that you had just got into a car for the first time and
there were informative labels on every control. They would tell you
exactly what each did, and would be useful in identifying the various
knobs and levers described in the instructions, but they wouldn’t help
you to find out how to operate them in concert to make the vehicle move.
8.11
Shareware information
8.11
Don’t forget to tell the user that your program is Shareware (more on
this later) and, just as important, explain what Shareware is. Many
people still don’t know, or think it’s just another name for PD. Explain
how Shareware works, that this is a commercial program and that they are
legally obliged to register if they use it. Don’t say ‘please send some
money if you find this program useful’ because that’s not Shareware. As
a Shareware author, you don’t have to beg for payment, it’s rightfully
yours, legally and morally. Say so. Don’t be impolite, but be firm.
8.11
Many authors put this information in a separate text file. This is OK,
but you should also include it all in your manual. It is up to you to
ensure that the user can’t fail to notice that the program is Shareware,
and up to you to explain what this is and what his obligations are.
Don’t assume that he will already know, and don’t allow your message to
be overlooked.
8.11
Crippling
8.11
I mentioned this last month and pointed out that I consider it so
counter-productive that it should never be used. As a member of the
Association of Shareware Professionals (ASP), I am bound by their rules
which forbid crippling of any type. In fact, the only inducement to
register that I am permitted to use is a simple banner screen, although
there is a debate within the ASP at present which might relax this rule
slightly.
8.11
Crippling doesn’t work! It just stops the honest person from trying the
program properly. The only purpose of crippling is to stop a dishonest
person from using it without registering. You might feel better knowing
that people who haven’t paid can’t obtain much benefit from your work,
but if you think that is important, you should avoid writing Shareware.
8.11
Incentives
8.11
There is a big difference between trying to force someone to register
(crippling) and using incentives. These may take the form of additional
tools or data available with the registered version, a printed manual,
or some other extras. However, the program must be properly documented
and fully functional without any of these. If it doesn’t work properly
without material available only to registered users, it isn’t Shareware,
it’s just another crippled program.
8.11
For example, the well known PC wordprocessor Galaxy has only a 22,000
word spelling checker with the ‘distributable’ program, but around
150,000 words with the registered version. This doesn’t stop the user
from trying the spelling checker, and it has the secondary advantage of
reducing the disc space required for distribution. Less enlightened
authors remove the spelling checker entirely from their programs but, if
this is an important feature to the user, he will be unable to evaluate
it and so less likely to register.
8.11
Experience shows that the type of program and, perhaps, the type of
person likely to use it, has an important bearing on the incentives that
need to be offered. Games will probably require major inducements, while
a wordprocessor or spreadsheet is likely to be used by a more serious
person who will need them less. It is common practice, for example, to
include only about three levels with a multi-level shoot-’em-up game,
while the full version could have fifty or more, and a screen editor as
well.
8.11
Some types of program do not lend themselves to this approach. One of
the most difficult is adventure games because, by their nature, they may
only be played once.
8.11
There are two possible solutions, both of which seem to work. The first
is to distribute a cut down version of the full game. Leave out a lot of
the ‘rooms’ and puzzles, and change the end game. This gives the user a
complete game which has the ‘feel’ of the full product, but he will know
that when he registers, he will still have a lot of new puzzles to
solve. Often, the early part of the game is identical in both versions,
and the user can apply a saved position from the cut down version to the
full version, so he isn’t obliged to repeat it.
8.11
The second solution, widely adopted, is applicable mainly to
role-playing games. By restricting many of the options, the user is
forced to play the game (and once again, this may not be complete) from
a limited choice of characters. The main inducement here is to let
him/her play it again, after registration, in different roles. As games
of this type often have alternative solutions depending upon the
character adopted by the player, this again gives an entirely fresh
game.
8.11
One inducement, applicable to either solution, is to offer ‘hints’ or
‘cheats’ only with the registered program. A problem with this is that
the player may get stuck early on in the game, and so not get
sufficiently involved to want to register.
8.11
Banners
8.11
In my experience, a banner is the best way of inducing registration,
whether used on its own or with one or more of the suggestions made
previously. A banner also announces that the program is Shareware, and
the user is reminded of this each time he uses it, so he can’t ‘forget’
to register.
8.11
It should not be intrusive, and should only appear when the program is
first started and, possibly, when you Quit as well. Don’t be tempted to
make it pop up at frequent intervals − it will just be annoying and if
you annoy your customer, he will not be in the right frame of mind to
send you money!
8.11
A banner should inform the user that the program is Shareware, and
explain where to look for instructions to register. It is best to make
it stay on screen for a fixed period, not less than about three seconds,
long enough to make its presence felt, but not more than about six, or
it will become annoying. This is the system adopted by almost all the
best selling PC Shareware programs.
8.11
Registration files
8.11
I invented this system for my own programs, although I suspect that it
may not be an original idea, and it has been adopted by other Shareware
authors with considerable success. It lends itself particularly well to
the Archimedes.
8.11
The method uses a conventional banner, but this is disabled by a special
file placed in the application directory. This file contains, among
other things, the encrypted name of the registered user. The name is
decoded by the program and displayed in the ‘Info’ window.
8.11
There are major advantages with this system. In most cases, there is
absolutely no difference between the registered and unregistered
versions of the actual program. The banner is disabled, and any extra
features ‘unlocked’, by the presence of a valid registration file. This
means that the user can get later versions from any source and his
personal registration file will ‘transform’ it into the registered
version. He can also pass on copies of your program to his friends, as
long as he removes the registration file first.
8.11
Obviously, this system won’t suit all types of program, but it can be
used with any desktop application and, with a bit of ingenuity, with
most non-desktop games.
8.11
There needs to be some sort of security to stop unauthorised tampering
with either the registration file or that part of the program which
decodes it. No doubt, the more paranoid authors will adopt highly
complex solutions, but you really don’t need to do anything elaborate.
8.11
I have included a short demonstration of this method which will,
hopefully, find its way onto the magazine disc. This is written in Basic
and is, therefore, easily tampered with, but it does illustrate the
principles, and I will leave it to you to devise your own security.
8.11
Special offer
8.11
A few issues ago, I offered a disc of programmers’ utilities, including
Zap and TemplEd. This was very popular, and so I shall offer a similar
disc. This time it will contain the well known text editor StrongEd and
a new Shareware template editor WinEd, plus various other useful items.
8.11
My main reason for including StrongEd is that it is a superb example of
a very good program that was not very successful as Shareware, was sold
for a while by Stallion Software in the ‘normal’ way, and has now
returned to Shareware. It’s actually a good editor, but has never
attracted a large number of registrations. Bearing in mind all that I
have said in this article, see if you can work out why.
8.11
As usual, for a copy of this disc send £1 (cheque or stamps) to me at
the APDL address and please tell me if you can use HD discs. u
8.11
8.11
8.11
PIMS
8.11
Mike Tomkinson
8.11
The problems of administering a School, even a small school, have not
been well addressed by writers of software in the Acorn world. Even
those of us teaching in Acorn schools are often forced to use PC
packages. At last this situation has a remedy, even if only for
Primary/Junior Schools.
8.11
PIMS or Primary Information Management System from Longman Logotron is
the first management system available for the Acorn range of computers
for use in schools.
8.11
PIMS is actually a difficult package to review in the normal sense. One
usually gains a good impression of a package at an early stage of using
it − often by comparison with another package. In this case, there is no
other similar package on the Acorn platform. Comparisons with
DOS/Windows packages are fruitless − if you are using them you are
probably stuck with them.
8.11
Any administration package has a steep curve of usability. This is only
partially related to its ease of use. Any changeover will tend to be
gradual, and there will be certain aspects of any package, for example
Inventory, that you may decide not to use immediately, if at all.
8.11
One area by which any administration software will tend to stand or
fall, will be in relation to pupil and staff records. Other aspects,
such as accounts, are more problematic.
8.11
Data input
8.11
As you would expect, the pupil/staff aspects are dealt with via a
database-like function. This is written in Longman Logotron’s S-Base.
Pupil and staff records are at the heart of PRIME (PIMS Rapid
Information Management Environment).
8.11
The pupil data contains all that one would expect and require in a
Primary/Junior school. This is entered into a card for each pupil and a
number of fields have the fast entry method, whereby a menu appears and
the user makes an appropriate choice.
8.11
An example is the Doctor field − most pupils would live locally and have
a Doctor from a Group Practice. You simply enter the names of the
doctors and, by using <menu>, their names appear. One single click and
their names are entered on the individual’s card.
8.11
Data output
8.11
This certainly eases data entry, but it is data output, not entry, which
is critical in any such software. After all, you may initially only be
using the software to produce better looking lists. Anything else you
can do may be a nice spin-off, but is not as crucial as a well
presented, up-to-date class list.
8.11
Here PIMS really comes into its own. There are four pre-defined methods
of displaying the data on screen and these, combined with careful
searching and sorting, give access to a wide variety of paper outputs.
As with any such software, the ability to customise is useful − but you
probably won’t need to change it immediately. Only when you realise the
true potential of the package as it stands, does this ability become
useful. The Report Designer enables a whole range of different reports
to be designed, and should certainly assist on Form 7 Day.
8.11
One PIMS trainer I spoke to said that, depending on the school, this
level of true functionality only becomes apparent to some schools a year
after installation of the software.
8.11
Documentation and support
8.11
This brings us to another very important point about PIMS. The software
is well supported by a very good manual − but a manual is often a last
resort. After all, the whole point of PIMS is that it is being presented
on a RISC OS desktop − it should therefore be naturally easy to use.
8.11
In the case of PIMS, however, the manual is not the last resort. PIMS is
not sold as software, but as part of a bundle, which includes training
and support. Without these it is useless. The training and support exist
not because PIMS is difficult to use − it is not − but because, without
these, productivity will not increase. If productivity did not increase,
you would have to ask questions as to why you were computerising the
administration in the first place. In fact, productivity would plummet,
simply because you were running two systems in parallel.
8.11
Some might consider that talk of productivity was out of place in a
primary school context. If so, they are probably well out of touch with
modern educational developments. Resource management becomes more
critical in smaller organisations, not less.
8.11
Accounts
8.11
The accounting part of PIMS consists of an Accounts module, a Budgeting
module, a Purchasing module, an Inventory module and a Petty Cash
module.
8.11
The copy of PIMS I was reviewing was the PIMS Evaluation Pack consisting
of the full manual and disks which only contain a subset of the full
package. None of the accounting modules were available, and I am always
reluctant to pass comment or judgment on any software based only on what
the manual says it should do.
8.11
Perhaps, to be fair to PIMS, it would be best to say that if the
accounting software performs only half as well as the pupil/staff
modules, it is an excellent overall package.
8.11
Try before you buy?
8.11
As PIMS does consist of a total solution to Primary/Junior school
management, Longman provide alternative methods of ‘Try before you buy’.
I have already mentioned the PIMS Evaluation Package, and another
solution is the Dealer Demonstration Package. Obviously, this involves
an Acorn Dealer who is accredited by Longman who will demonstrate the
entire package before a school commits itself.
8.11
In fact, I would advise against the Evaluation Pack − its scope is too
limited to give a fair idea of what the total package is likely to be
capable of achieving.
8.11
Equipment
8.11
PIMS will run on any RISC OS computer equipped with a hard disc, but I
would always recommend using the most powerful machine available. For
most primary schools, an A5000 or A4000 would suffice, if it has at
least 4Mb of RAM, but a Risc PC would be a more sensible option for new
users.
8.11
Overall
8.11
I have very few reservations about this major package. One slight gripe
is that, although the manual is excellent and the package relatively
straightforward, I like on-line help. Perhaps I have been spoilt by the
excellent on-line help which accompanies most Windows programs, but I
really prefer it to manuals.
8.11
The purchase of PIMS should not be considered as a one-time purchase.
Indeed, there would be major disadvantages if this were the case. To be
of any use, an administration package must be able to respond to change
− both from the user, and changes caused by external agencies, such as
the Department for Education or the Local Education Authority.
8.11
Longman are constantly updating PIMS in response to both factors for
change. Any school which had particular requirements could probably be
accommodated, owing to the inherent flexibility of PIMS and the S-Base
language in which it is written.
8.11
Indeed, there are already major changes underway. For this reason, any
purchaser would wish to always have the latest version and, for this
reason, is really purchasing a rolling licence which entitles them to
this level of user support.
8.11
Conclusion
8.11
Any Primary/Junior School even considering the introduction of computers
into its administration should consider this package. This advice
applies whatever other systems are currently in use − it costs nothing
to look and evaluate. Data can be imported and exported, and the data is
not locked into one platform.
8.11
Talk to your local Acorn Education Dealer before committing yourself to
any other administration system − PIMS will offer you an Acorn
alternative. u
8.11
8.11
Gerald’s Column
8.11
Gerald Fitton
8.11
The main topic this month is printing labels. I don’t know how it
happens, but it seems to me that many people ask for the same thing at
the same time, and this month it’s labels. Perhaps it was the article on
Printers in last month’s Archive which triggered the requirement in your
minds − maybe it’s just coincidence! But first of all, a few other short
points.
8.11
The lottery
8.11
I have received over a dozen letters pointing out a couple of errors
which appeared in my article about recursion in the Archive 8.9 p45. It
is not one of those occasions when I have made a deliberate error or
made an outrageous remark in the hope of provoking a response; nor is it
one of those many occasions when I don’t know what I’m talking about! I
did know the right answers and simply typed the wrong values.
8.11
The first mistake is in the section where I calculate the number of
possible different selections of six numbers from forty-nine. The
formula which I gave as nCr(49,6) is correct but the value is 13 983 816
and not 13 986 816. The consequence is that the chance of winning the
lottery is slightly better than I quoted − but I don’t think you’ll find
that the difference is significant.
8.11
The second mistake occurred in the paragraph dealing with selecting five
of the six winning numbers but without the bonus ball number. Many of
you wrote saying that the value I quoted, 258, was right but that I
wrote down the formula as nCr(49,5)*nCr(42,1) and should have written
nCr(49,5)*nCr(43,1). This was not the mistake! The formula,
nCr(49,5)*nCr(42,1), is correct but its value is 252 and not 258 as I
quoted. The difference, 258 − 252, is the 6 which qualify for the ‘Five
plus the Bonus Ball’ prize. We must exclude those 6 winning lines where
the sixth ball is the bonus ball because you don’t just get the prize
for five winning numbers but the prize for ‘Five plus the Bonus Ball’!
8.11
Printers
8.11
As a result of my article about choosing a printer in last month’s
Archive, I have already had many letters. Although I have replied to
each of you personally, I would have liked to give you all a mention in
Archive. Space doesn’t allow that! Your comments to me are most
appreciated and they help me to extend and consolidate my knowledge.
That in turn makes my advice to you more accurate and hence more
valuable to others.
8.11
I have chosen only one letter. It is from John Evans of Mijas Software
and I shall publish only part of his long and most interesting letter.
For colour printing, John uses an Epson Stylus. He is delighted with the
results and has sent me many samples. I am sure that the three points I
have selected from the many will be of general interest.
8.11
The first is that version 1.28c of Printers has pleased him
“especially”. John, like many of my correspondents, echoes my own view
that it is definitely worth upgrading to v1.28c. (Now available through
Archive as Utilities Disc Nº9 which is £5 to include the cost of printed
instructions and p&p. Ed.)
8.11
John’s second point, backed up by samples, is that 360 dpi colour
pictures look “washed out” but pictures printed at 720 dpi are
“fantastic”. By the way, as well as printing on paper, he can print onto
Schwan Stabilo overhead projector film. My comment in last month’s
Archive was that I thought 360 dpi was insufficient. John’s samples
reassure me about the value of going to a higher resolution for colour
printing.
8.11
John’s third point does not refer to the Epson. For monochrome printing,
he uses a Hewlett Packard IIISi laser printer to produce 300 copies (per
month?) of his parish magazine, The Dever. John states that running
costs would be higher on an offset lithograph. He praises the HP machine
for its reliability, consistency and low running costs. In addition, he
echoes the view I expressed last month which is that laser printers
produce higher quality than what he calls ‘copy’ printers.
8.11
(I have just heard from a subscriber, whose name escapes me, that the
Risograph copy printers can be linked directly to an Acorn computer.
This means you don’t have to print out on paper first and then scan it
to produce the stencil. The computer output cuts the stencil directly.
We hope to publish details in Archive in due course. Ed.)
8.11
Printing labels from a database
8.11
This is my topic for this month’s article. As my example, I shall
describe how to print labels on an Avery L7161 sheet of labels. The
L7161 holds 18 labels per sheet in 6 rows and 3 columns. It is a most
useful size because the labels, being 63.5 mm by 46.6 mm, can be used as
disc labels as well as address labels. The method I describe can be
extended to other sizes of labels.
8.11
What package shall I use for my exposition? I have no doubt that many of
my regular readers will be horrified and others intensely pleased that
my choice is a rather well worn package, PipeDream 4. I have many
reasons for choosing PipeDream 4, some sentimental and others pragmatic.
One of my correspondents from New Zealand lists PipeDream amongst the
many packages from which he might print his labels. After trying several
other packages, like me, he is now using PipeDream. His final comment is
that producing labels from PipeDream is faster than anything else that
he’s tried even though it took him longer than any other package to get
it to work successfully.
8.11
Two other reasons are that (a) many of my readers still have PipeDream
and use it regularly, (b) those of you with Fireworkz should be able to
modify the PipeDream method for your package.
8.11
Perhaps my main reason for choosing PipeDream is because it allows me to
repeat a maxim I first included in Archive many years ago. Although it
is difficult to set up a label printing application in PipeDream, once
set up, it is easy to use. The quote about PipeDream from long ago,
“Hard to learn − easy to use”, was intended to persuade you that, when
you get to know PipeDream, there are ways of doing many things which are
more difficult to achieve or even impossible with other packages.
8.11
Although this article relates specifically to using PipeDream, I shall
describe the general principles so that you can work out how to apply
those principles in your favourite package.
8.11
If you have Fireworkz or Impression Publisher, here is your opportunity
to write to me explaining your method so that I can write it up for
Archive.
8.11
All the files to which I refer are on the Archive monthly disc in a
directory called Labels.
8.11
The database
8.11
The screenshot below shows part of a typical database file [Addresses]
in PipeDream format:
8.11
I use columns B to F for the address label. I use Column A only as a key
field. In the case of private individuals, it holds the surname of the
addressee. Row 6 best shows the way in which I use column A in the case
of a company.
8.11
You may have seen my occasional advertisement in Archive for the user
groups I run. Other columns from G onwards hold details of the discs
which subscribers have had or which they want at some time in the
future. When I need a run of labels, I sort the database on the column
containing the disc we’re about to send out. This collects together at
the top of the database all those people for whom I need a label.
8.11
The TSV file
8.11
The acronym TSV stands for Tab Separated Value. Using PipeDream, you
need the label database in TSV format; other packages may require Comma
Separated Value, CSV, format.
8.11
In PipeDream, mark the block of addresses you want and save in ASCII
format. I use the file name [Addr] for this purpose. The screenshot
opposite shows the Save options you should select to save in TSV format.
8.11
The filetype of [Addr] is Text and it will load into Acorn’s Edit
utility.
8.11
The screenshot below the first one shows part of the [Addr] file after
it has been loaded into Edit.
8.11
The [09] is Edit’s way of representing the tab character. Each row is
one record and each field is separated from the next by [09].
8.11
The [Default] PipeDream printer driver
8.11
We shall be using a PipeDream printer driver rather than a RISC OS
driver and we shall print to a file (rather than to the printer) as an
intermediate step.
8.11
The PipeDream printer driver we need must contain nothing which will
introduce extra characters through, for example, the PON string. The
[Default] printer driver supplied by Colton Software with PipeDream is
such a printer driver.
8.11
You can change the PipeDream printer driver through the command
<ctrl-PD> or through the Print – Printer configuration submenu. If you
save the file after changing the printer driver, the driver you’ve
chosen will be saved with the file.
8.11
The text below is the total content of the [Default] printer driver
supplied by Colton Software with PipeDream:
8.11
PipeDream printer drivers
8.11
This driver is an empty printer driver in order to enable the PipeDream
defaults to be restored.
8.11
Created 15-Oct-91.
8.11
End of PipeDream printer driver
8.11
If you are using a package other than PipeDream, and want to create such
a file, you need to create a RISC OS text printer driver which
introduces no extra characters through page start and line start strings
etc, and use that printer driver.
8.11
The [OneLabel] file
8.11
The mail merge facility supplied as part of PipeDream allows you to
extract values from a TSV file (held on disc) into the output which is
‘printed’ to a disc file.
8.11
The screenshot below shows the [OneLabel] file:
8.11
[OneLabel] represents a single label (remember there are 18 to a sheet)
with rows 4 to 8 containing the contents of columns B to F of the
original [Addresses] database.
8.11
The values @1 to @5 in rows 4 to 8 have a special significance. They
ensure that, when printed, each of the many labels produced contain data
extracted from the [Addr] TSV format file. The first of the @ values
which could be used is @0 but you will remember that column A of
[Addresses] does not form part of the address which we want to print. @1
loads the contents of column B and @5 the contents of column F. Note
that it does so from the file [Addr] (the TSV file held on disc, not in
memory) and not from [Addresses].
8.11
If you are using a package other than PipeDream, you may need the [Addr]
file in CSV format and not TSV format.
8.11
The mail merge operation
8.11
This is executed quite simply by loading the file [OneLabel] and tapping
<print>.
8.11
Looking at the screenshot below you will see that the printer driver
chosen is the one called [Default].
8.11
Using PipeDream 4, but not PipeDream 3, the printing options are saved
with the PipeDream file. If you have the files from the Archive monthly
disc, you will find that the [OneLabel] file has been set up to use the
[Default] printer, to print to the file [PrintList] and to use the
database file [Addr]. If you are making up your own set of files,
remember to save the blank [OneLabel] after you have set up the print
options.
8.11
Also, instead of printing to Printer, i.e. on paper, you will see that
PipeDream has been set to print to File, the file called [PrintList].
[PrintList] will be created in the same directory as that from which
[OneLabel] was loaded.
8.11
The mail merge operation fills the slots of [OneLabel] containing @1 to
@5 (slots A4 to A8) with data from the database contained in the TSV
format file called [Addr] and ‘prints’ the result, in plain ASCII
format, to the file [PrintList].
8.11
The [PageBlank] file
8.11
The labels are printed from this file. When it is loaded it looks like
the screenshot below:
8.11
Column A is used to set the left margin. Columns B, C and D are for the
address labels and so the width must be adjusted to match the width of
the label. For the Avery L7161 labels this is a <ctrlW> width of 29
characters.
8.11
I use 10 rows per label, so I need to choose the line height so that 10
times the line height equals the label height.
8.11
The line height is adjusted through the <ctrl-PFG> command or the
Print – Font submenu. From the screenshot above, you will see that I
have used a line height of 13.25 points. Different printers seem to have
slightly different slippage as the paper is dragged through the rollers
− my correspondents have had to adjust this value slightly to suit their
printer. You will see that I use Homerton, a sans serif typeface, for
address labels. The Post Office have told me that they prefer such a
typeface.
8.11
If you are creating the file [PageBlank], save it after you have
adjusted the line height.
8.11
Three columns of labels
8.11
Drag the file [PrintList] into slot B1 of [PageBlank] and you will find
that you have one column of addresses in column B. Columns C and D are
blank.
8.11
Go to the end of the file and note the row number. In the case of my
example on the Archive monthly disc, this is 180. Divide the row number
by 3. 180/3 = 60. Every label uses 10 rows, so you need to round up to
the nearest 10 and then add 1. Use <ctrl-CGS>, Cursor Goto Slot, to
place the caret in slot B61. Mark the block B61 (in the example this is
the first row of the 7th label) to the end. Place the cursor in slot C1
and execute <ctrl-BM>, Block Move. Labels 7 to 18 will fill column C. In
the same way, mark a block from C61 to the end of column C and move it
to slot D1. You will now have three columns of labels which you can
print out using the RISC OS drivers.
8.11
Although the example has only 18 labels and uses only one page of
labels, I’m sure you’ll see that you should move two thirds of the the
addresses from column B to C and then a third from C to D if you are to
use the pages of labels most efficiently.
8.11
Automation
8.11
I use an Obey file which calls up and runs several PipeDream command
files to execute the whole of this label printing operation
automatically.
8.11
I have decided, albeit with some reluctance, not to give details in this
article since the space I would use and the possibilities for making
mistakes are too great. Forgive me but I don’t want to receive mountains
of mail from you telling me how you’ve tried unsuccessfully to get the
obey file to work with your system! If you understand Obey files, and if
you understand PipeDream command files, I’m sure you’ll be able to
automate your label printing. If not then, even manually, the operation
is a fairly slick one and definitely fast.
8.11
Other label sheets
8.11
I know that many of you use a label sheet other than L7161 for your
address labels. If you use PipeDream and have created a set of files
similar to [OneLabel] and [PageBlank], please let me have them for
distribution to others. If you have problems setting up PipeDream and
need help in creating [OneLabel] and [PageBlank] for your labels and
database, please send me the files that you have tried, on a disc
please, and I’ll do my best to find out what’s going wrong for you.
8.11
Other packages
8.11
At this stage, please don’t ask me for details of how to do the same
thing with packages other than PipeDream because I will find it
difficult to provide you with a ready-made solution.
8.11
If you have already created such an application for use with Fireworkz,
Fireworkz Pro or Publisher’s mail merge, please send me the example with
the templates on a disc. When these arrive here, I’ll let you know and
I’ll announce that I (or rather you) can help those who want to use the
other package.
8.11
In conclusion
8.11
I have decided to release my telephone number. You will find it on the
inside back cover of Archive under the heading of Abacus Training in
future months. However, I must warn you that I have a ‘day job’ and
that, most of the time, all you’ll get is a combined answerphone and fax
machine.
8.11
The number is +44-1793-723347 from outside the UK and 01793-723347 from
within the UK. I would prefer a fax to a verbal message.
8.11
What I prefer most of all is for you to send me a disc containing your
attempt to solve your problem. Please include example files, if
appropriate.
8.11
Thanks again for all your letters. I really do enjoy receiving them even
if there is sometimes a delay between receiving them and replying. u
8.11
8.11
Reader for Pocket Book II
8.11
John Woodthorpe
8.11
Earlier this year, Archive published my review of Arctic and CompuServe,
and one of the things I mentioned then was the lively Psion sections in
the Palmtop Forum. Since then, I’ve become even more impressed with the
helpful forum members and the software available. Most of it can be
obtained from other PD and Shareware sources, such as Datafile, but you
can ‘talk’ to a lot of the authors on CompuServe. They are always
willing to offer support and help, no matter how simple or complex the
question, and they will often consider producing modified versions to
suit specific requirements. To illustrate this, I’m going to talk about
a program that has dramatically changed the way I use my Psion Series 3a
(equally applicable to the Pocket Book II).
8.11
The need
8.11
The wordprocessor in the Psion3a is an excellent piece of software. I’m
writing this review on it at the moment, complete with on-screen font
effects, predefined template, and spell-checker. Its biggest failing is
that it is limited to a maximum file size of around 40Kb. I can’t
imagine wanting to write more than that on the little keyboard, but
reading files is another matter. You might want to browse the Archive
text files, or even read a novel. NCS will sell you the former, but
where would you find someone willing to type a novel out for you to
read?
8.11
The answer is Project Gutenburg, which produces text files by scanning
books. In Archive 8.10, the reviewer of Datafile’s PDCD 2 wondered about
‘the value of complete books being stored digitally’. Project Gutenburg
is providing ASCII files out of copyright material, such as the Bible,
the works of Jane Austen, Henry James, William Shakespeare and many
more. You can get them via the Internet or PD libraries far more cheaply
than buying the books, and several can fit into the Psion3a (depending
on memory). So how do you read them?
8.11
The program
8.11
One answer is Reader, a Shareware application written by Barry Childress
in the USA. He distributes it via CompuServe, and now that it is in a
greatly improved form, it is starting to be made available via PD
libraries and bulletin boards. There are two forms of the current
version (2.2): a demo version with a gentle ‘nag’ screen displayed every
now and then, and the full registered version. This has no ‘nag’ screen,
and is personalized with your own name in it. For $20 (or a sterling
cheque for around £13) you also get the chance to influence the
development of the program. So what’s special about it, and why is it
causing such a stir on the Palmtop Forum?
8.11
Features
8.11
The simple operation of reading a large text file is accomplished by
loading a small portion of it into memory, rather than the whole thing.
Loading the next screenful, or turning the ‘page’, is done by pressing
almost any key, apart from <delete> or <escape> which go to the previous
page. While you read one page, the next one is loaded into memory so
that you don’t have to wait for the screen to redraw when moving on.
8.11
A useful option is the ability to change the font from Times to
Helvetica, select one of four sizes, or even rotate everything through
90° to the left or right. This gives more text on the screen at a time
(see screenshot). It also gives what I feel is a more convenient setup,
holding the Psion3a with thumb along the central keystrip, the screen on
one side and the keyboard on the other.
8.11
All these personal preferences can be saved as defaults, to be applied
to every file subsequently opened. When a file is closed, Reader saves
your place, and reloads to the same place the next time, so you can
continue reading from where you left off. The convenience of being able
to carry a couple of novels around in your Psion3a, ready to read them
in any spare moments during the day is wonderful, especially if you’re
like me and keep your Psion with you at all times.
8.11
Files can be searched, sections saved, and bookmarks inserted, all of
which help in finding your way around a book when you can’t physically
flick through the pages. Originally, Reader was developed for off-line
reading of CompuServe mail, and it still does this, including some
support for thread following introduced in the current version. Of
course, this aspect is not especially interesting unless you access CIS
with a Psion.
8.11
Compression
8.11
The best bit is that recent versions now also work with compressed
files, saving precious SSD space. This happens without compromising the
access speed, enabling a typical 400Kb novel to be compressed to around
half that − great for extended business trips away from home. The only
real disadvantage is that the compression technique is non-standard,
having being developed for Reader. The text file is compressed by a
small DOS program supplied by Barry (along with a DOS decompressor in
case you forget what the file was before transferring it to the Psion).
At the moment, Acorn owners will have to use the PC emulator or a PC
card to do this, but a native Acorn application should hopefully appear
soon.
8.11
Conclusion
8.11
By the time you read this, the demo version should be available from
Arcade, Datafile, and on the Archive monthly disc. Have look at it and
see if you agree with me that it has the potential to become an
essential application for people who would like to read more but don’t
feel they have the time. u
8.11
8.11
C++ Column
8.11
Tony Houghton
8.11
In this column, I intend to provide C programmers with a good working
knowledge of C++; it will tend to concentrate on the actual language,
rather than RISC OS specific issues. Although I am a relative newcomer
to C++, I am a reasonably experienced C programmer, and I thought that
writing a series of articles, using Bjarne Stroustrup as a reference,
would be a good way to get a firm grasp of the concepts myself.
8.11
This first article will introduce the concepts of C++ and detail the
minor, but useful, changes from ANSI C that can be applied to procedural
(non-object-oriented) programming. Subsequent articles will deal in more
detail with entities such as classes and, hopefully, how to use them
effectively.
8.11
An overview of C++
8.11
The main facilities C++ adds to ANSI C can be summed up as:
8.11
• Enhancements to C, which I shall describe this month.
8.11
• Classes, forming the basis of object-oriented programming. At
their simplest, classes can be thought of as a type of structure with
associated functions.
8.11
• Overloading, whereby functions and operators with the same name
can perform different tasks, depending on the types of their arguments
or operands.
8.11
• Templates: type-independent families of functions and classes.
Note that this means that ‘template’ is now a keyword and cannot be used
to refer to RISC OS templates.
8.11
• Exceptions: a form of error handling which are, unfortunately,
not supported by the current Acorn C++ package.
8.11
• The streams libraries, providing buffered i/o.
8.11
A “better” C
8.11
C++ can be used to write C-style procedural programs using the
enhancements below, but to do this would be grossly under-using the
language. Therefore, these sections are intended for introduction and
reference only. You should expand your ideas to embrace object-oriented
programming as soon as possible.
8.11
Comments
8.11
C++ adds a new type of comment, beginning with // and ending at the end
of a line. This is now the preferred way of using comments except where
commenting out a block of code (where the comment needs to span several
lines and it is inconvenient to prefix every line with //) and where
code is desired after a comment, in the middle of a line (the latter
would best be avoided). Comments using // can be nested within /* */
comments, and vice-versa.
8.11
Type checking
8.11
C++ is stricter than ANSI C about type checking. Functions must be
defined with their arguments or declared before they can be called
(Acorn ANSI C gives a warning, C++ gives an error). int’s cannot be
assigned to enum’s, or void *’s to other pointers without explicit
casting, but the reverse is permitted:
8.11
enum acorn {electron, bbc, master, archimedes, risc_pc};
enum acorn computer;
int machine;
void *vptr;
int *iptr;
int main()
{
computer = archimedes;// OK, enum
= enum
machine = archimedes; // OK, int = enum
computer = 3; // Error:
enum = int
vptr = &computer; // OK, void *
= &variable
iptr = &computer; // OK, int *
= &enum
vptr = iptr; // OK, void *
= int *
iptr = vptr; // Error: int *
= void *
}
8.11
Streams
8.11
Streams can only be very briefly introduced at this stage, but it is
useful to know how to use cout and cin. These are sometimes incorrectly
referred to as functions, whereas they are actually objects (analogous
to a variable with a struct type).
8.11
Streams are more sophisticated than the functions provided by <stdio.h>,
so they are in most ways superior, but they can be harder to set up and
use (as you’re about to see). As you would expect, there are streams
specialised for use with files, strings and the screen and keyboard.
8.11
cout is the default output stream (c.f. printf()) and cin is the default
input stream (c.f. scanf()). They are used thus:
8.11
#include <iostream.h> // Contains declarations of cin & cout
#include <stdio.h>
int main()
{
int number;
cout << “Hello, here is a number: ”
<< 4 << “.\n”;
printf(“Enter another number.\n”);
cin >> number;
cout << “\nYou entered ” << number
<< “.\n”;
}
8.11
Incidentally, if you try compiling and running this, the results may be
a little unexpected, to say the least. I’ll explain this shortly. The
lines beginning with cout and cin look a little strange if you do not
know about classes and overloaded operators. To see how the syntax fits
(ignoring functionality), it may help you to imagine cout and cin as int
variables, the operators << and >> as having int results (imagining + in
place of them may be easier), and the strings as integers. It then
becomes clear that the above are (chained) expressions whose values are
ignored.
8.11
Depending on your implementation, you may have found that the second
message, output by printf(), appeared before the first cout message, and
you had to enter loads of numbers (or give up and press escape), before
the last message appeared. This is because streams are buffered; the
buffers are allowed to fill before any characters are passed to the
screen or the program. The easiest general purpose ‘cure’ is to add the
lines:
8.11
cout.sync_with_stdio();
cin.sync_with_stdio();
8.11
before using the streams (e.g. at the start of main()).
8.11
Variable declaration
8.11
C++ allows automatic (local) variables to be declared anywhere within a
function, not only at the start of the block. Variables can also be
declared in the first sub-statement of a for; they then have scope to
the end of the block enclosing the for. A variable declaration cannot
follow if except in braces {}. Variables can be declared, but not
initialised in the middle of switch statements.
8.11
int g(int z) {return (z + 1)};
int h(int y) {return (y − 1)};
int main(int argc, char *argv[])
{
int a, b = argc; // As in C
int c;
a = g(argc); // Call another
function
int d = h(a); // Declaration
mid-block (OK)
if (argc) int e; // Error: conditional declaration
for (int index = 0; // Declaration with for (OK)
index < argc;
index++)
{
printf(argv[index]);
}
switch (argc)
{
case 0:
c = h(−1);
break;
case 1:
int e; // Declaration mid-block (OK)
e = h(argc);
break;
case 2:
e = h(argc); // OK: e still in
scope from above
int x = e; // Error: initialisation within switch
break;
}
return index; // OK: index still in scope from for
}
8.11
Hidden global variables
8.11
If an automatic variable or argument in a function has the same name as
a global variable, the global variable is hidden by the temporary
variable within the scope of the function, i.e. it cannot be accessed by
the function because all references to its name refer to the temporary
variable instead. C++ allows access to hidden global variables (but not
other hidden temporary variables) by prefixing their name with :: .
8.11
int x;
int main()
{
int x;
x = 10; // Refers to automatic variable
::x = x; // Assigns the value of automatic x to global x
}
8.11
References
8.11
A reference to another variable or constant can be defined with int &ref
= var;
8.11
Wherever ref is mentioned in its scope, it actually refers to var. This
means that references must be initialised (with the variable they refer
to), except if declared extern. Initialisation is totally different from
assignment. The former creates an alternative name for a variable,
whereas subsequent assignment assigns to the original variable. A
reference can only refer to a constant if the reference is const. const
references can be assigned with non-lvalues, and even with a value of
differing arithmetic type (e.g. int to float). In such cases, the
reference actually becomes an automatic const variable (?!) with its own
distinct storage.
8.11
References are only really useful when used with functions. Their main
use is as arguments (called by reference arguments). If a function needs
to be passed a struct and you prefer to use the . notation rather than
->, a reference can be used to avoid the inefficiency of temporarily
duplicating the struct.
8.11
void rect_to_workarea(const
WimpGetRectangleBlock
&cvtstr, BBox &rect)
// cvtstr is const because function
// doesn’t alter it; no temporary is
// needed, because original block
// would have been an lvalue of the
// same type. Lack of const in front
// of BBox &rect implicitly declares
// intention of function to alter it
{
rect.xmin −= cvtstr.visible_area.xmin − cvtstr.xscroll;
// ... etc ...
}
void redraw_window(int wh)
{
WimpGetRectangleBlock redraw_block;
BBox wkarea_clip;
// ...
rect_to_workarea(redraw_block,
wkarea_clip); // Alters wkarea_clip
// ...
}
In fact, it is usually clearer to use a pointer in place of modifiable
reference arguments (such as wkarea_clip/rect).
8.11
Functions can also return references e.g. int &f(void);. This means that
you can modify or take the address of a function result. As above, this
is really only an alternative to returning a pointer for notational
convenience.
8.11
One thing for which I find references useful, but which is not usually
documented, is to provide a way of efficiently converting the ‘handle’
of an event handler to a useful reference to an object (not a pointer to
it, as you will see) without the overheads of creating a new object at
run-time, e.g.
8.11
int load_handler(WimpMessage *message, void *handle)
{
file_data *data_ptr1 = (file_data *) handle;
// Wasteful, creates a new variable with a duplicated value
file_data *&data_ptr2 = (file_data *) handle;
// Gives ‘anachronism’ warning: cast is not a lvalue
const file_data *&data_ptr3 = handle;
// Wrong! Defines non-const reference to pointer to const
file_data *const &data_ptr4 = (file_data *) handle;
// OK, but likely to create a temporary,
// defeating aim at efficiency
file_data &data_ref = *((file_data *) handle); // (now a lvalue)
// Does the job, if perhaps inelegantly; const optional
// Now use data_ref.<member>, not data_ref-><member>
// ... rest of function ...
}
Memory management
8.11
C++ provides two extra operators (not functions) for memory management.
They allocate and deallocate memory from the free store like malloc()
and free(). new allocates enough memory for an object of the type
specified, creates the object (important for classes with constructors),
and returns a pointer to it. delete frees the memory used by the object
pointed to by its operand, calling any destructors first. Deleting a
zero pointer is guaranteed to do nothing. Arrays can be created by
specifying the number of members in square brackets after the type name.
Any constructors are called for each element. Arrays can be deleted by
putting empty square brackets immediately after delete (the size of a
dynamic array is stored alongside it in an implementation-dependent
way). Deleting a single object with array delete or vice versa has
unspecified results (i.e. probably a crash), but the compiler cannot
always detect this.
8.11
int *iptr = new int; // Create an int on the free store
// ... some code ...
delete iptr; // Delete the int
int *iptr = new int[100]; // Create an array of 100 ints
// ... some code ...
delete[] iptr; // Delete the whole array
8.11
new and delete should, if possible, be used in preference to malloc()
and free(). There is no replacement for realloc(), but it is easy to use
new then delete the original. If new fails, it returns a null pointer.
In addition, you can register another function (with no arguments or
return value) using set_new_handler() defined in <new.h>.
8.11
Functions
8.11
Function declarations can be preceded by the keyword inline, so that,
where possible, function calls are replaced by the code in the body of
the function. This is a replacement for macros, where it is desirable to
avoid the time overheads of calling a short function. The advantage of
inline functions over macros is that they can be strictly type checked.
Acorn’s C++ translator is limited in that there can be no statements
following a return statement in an inline function.
8.11
Functions can also be declared with default arguments by giving them
initialisers (in the first declaration only). The arguments can then
optionally be omitted when calling the function:
8.11
inline int f(int a = 0) { return a +
1; }
int main()
{
int b = f(2); // a = 2, b = 3
int c = f(); // a = 0, c = 1
}
8.11
Any arguments following the first default argument in the declaration
must also be default.
8.11
If you do not intend to use an argument in a function, but it has to be
included for type equivalency (often the case with RISC OS event
handlers), it need not be named in the function’s definition. This
avoids having to use wasteful statements such as handle = handle; to
suppress annoying compiler warnings (although Acorn’s example C code
uses handle = handle; style statements, ANSI C does not warn of unused
arguments, but C++ does).
8.11
int my_message_handler(WimpMessage*msg, void *)
// void * argument can be ignored
// without generating warning
Non-simple types
8.11
By non-simple types, I mean struct, union, enum and class. In C, you
would generally use:
8.11
struct quad_word { int a[4]; };
8.11
/* Must always be referred to as struct quad_word. Can be
referred to before definition provided no
access to members is attempted */
8.11
or
8.11
typedef struct { int a[4]; } quad_word;
8.11
/* Referred to as quad_word, but
8.11
only after definition. Can also
8.11
be referred to as struct
8.11
quad_word. */
8.11
In the second case, the struct is given the same name as the attached
typedef name, so this is the more flexible method in C. In C++, the
class key (struct, union, enum, class) can be omitted in subsequent
references to the type, even if a typedef is not used:
8.11
struct quad_word { int a[4]; };
quad_word.a[0] = 1; // OK in C++, error in C
8.11
Anonymous unions
8.11
When nested within a structure, unions need not have a name in C++:
8.11
struct mc_result
{
int tag;
union {
int words[4];
char bytes[16];
}; // No name necessary
in C++
} res_holder;
8.11
The words member of res_holder can then be accessed by res_holder.words
without an intervening union name, e.g. res_holder.words[0].
8.11
Linking C++ and C programs
8.11
You will often want to link C object files with C++ object files, e.g.
to use <stdio.h> etc in C++. However, C++’s extra features mean that
function and variable names have to be expanded into more complicated
forms in object files. To allow C++ programs to access C, all C
declarations must be preceded by extern “C”. This tells the compiler to
create a reference to the simpler C-style name. Whole blocks can be made
extern “C” by enclosing them in braces {} preceded by extern “C”.
Libraries for use with both languages can use the directive
conditionally, by testing for the predefined macro __cplusplus. (See one
of the new clib header files for details of how this works.) Note the
matching conditionally compiled closing brace } at the end of each file.
Note, too, that __cplusplus is not automatically predefined by Acorn’s
c++ tool (use the Define entry from its menu), but it is predefined by
Make.
8.11
Similarly, C functions can access C-compatible parts (simple functions,
non-class variables) of C++ functions by declaring them extern “C++”,
provided the C compiler is new enough to recognise the directive and
know how to expand C++ names.
8.11
Programming style
8.11
To program effectively in C++, you will have to make a considerable
effort to think in terms of objects rather than procedures. However,
there are some simple guidelines for improving reliability that are
relevant to all types of programming:
8.11
• Make full use of the const qualifier in function arguments etc.
If you know a function is not going to change an argument or what a
pointer argument points to, make it const. Unfortunately, Acorn have
(very negligently) not used const even in their latest RISC OS
libraries, so you will have to do some casting from const to non-const
equivalents, but it is worth it for the added security and clarity that
const will add to your own interfaces.
8.11
• Avoid global variables (except C++ objects). Where they are
necessary, it is preferable to ‘hide’ them and provide mini functions to
access them. This is an example of reliability at the expense of
efficiency but, in C++, efficiency often need not be sacrificed (e.g.
inline functions). Group the related variables in a class/struct.
8.11
• Avoid macros (#define). For constants, use const’s or enum’s.
For small, frequently used routines in C++, use inline functions, using
templates if different argument types are necessary.
8.11
• Try to avoid unions and arrays except within classes, and void
*, pointer arithmetic and casts (type conversion), except at the lower
levels of your implementation. Most things that are slightly ‘messy’ in
C can be achieved more elegantly by using classes in C++. u
8.11
8.11
‘Font_Paint’ Demonstration
8.11
Ray Favre
8.11
(This article is best used with reference to the program listing but it
is too long to print (~6 pages) and so is on the monthly program disc.
If you begrudge paying £2 for the program disc just to get the one
listing, send a blank formatted disc and we’ll send you a copy. Ed.)
8.11
SYS “Font_Paint” provides a means of writing text in an anti-aliased
font directly to the screen.
8.11
The call can use as many as eight registers, R0 to R7, the key one being
R2, in which bits 0 to 10 have defined meanings, varying the ‘plot’
type. This article will mainly explore the differing uses of R2, and it
will be seen that it permits a wide range of effects, including
justification, scaling, rotation, colour changing and kerning.
8.11
The SYS call operates on a complete string, which needs to be included
at (or pointed to by) R1. Since a string is used, certain control codes
− rather like VDU call sequences − can also be included in the string to
further modify ‘plot’ actions.
8.11
Although it is not necessary to use the desktop to demonstrate the
features on-screen, colour manipulation and compatible hard-copy are so
much easier in Desktop mode. So the demonstration program multitasks and
opens a window into which all the ‘Font Painting’ actions are directed.
8.11
At the risk of stating the obvious, it’s worth noting that the font
background and foreground colours are defined separately and
independently of the window colours.
8.11
The listing
8.11
For simplicity, the program opens its one and only window directly,
without using an iconbar icon. Double-clicking on the application icon
will get you right there − with the complete demonstration output on
screen in one go.
8.11
Because the text output is written directly to the window, the display
needs the task’s help in updating the window. Hence the window flags
need to reflect this, and ‘PROCredraw’ and reason code 1 become the main
action items. ‘PROCredraw’ is the standard redraw routine which, in this
case, invokes ‘PROCdisplay’.
8.11
‘PROCdisplay’ simply steps through a series of example ‘SYS
"Font_Paint"’ calls, each performing a different ‘plot’ action. To make
it easier to follow, “Line1” is written on the screen as a result of the
action associated with “test$=FNstring(1)” in the listing, and so on;
running from top to bottom of the screen. The listing is fairly well
commented and, in particular, there is a brief explanation for each
‘plot’ type.
8.11
‘FNstring()’ parallels ‘PROCdisplay’ by providing an appropriate string
for each SYS "Font_Paint" call. Cases 1 to 8 are fairly straightforward
(but the leading/lagging spaces are important in “Line 4”). Cases 9 to
11 use strings with embedded control codes − see later.
8.11
The SYS call
8.11
The SYS call takes the general form:
8.11
SYS “Font_Paint”,R0,R1,R2,R3,R4,R5,R6
8.11
,R7
8.11
where:
8.11
R0 Font handle (0 for current handle)
8.11
R1 String to be written, or pointer to it
8.11
R2 Plot type (see below)
8.11
R3 Starting x coordinate
8.11
R4 Starting y coordinate
8.11
R5 Pointer to coordinate block, if R2 calls for it
8.11
R6 Pointer to transformation block, if R2 calls for it
8.11
R7 Length of string, if R2 calls for it.
8.11
R0 For this example, only one font is used and is set at the start
of ‘PROCdisplay’. Thus, R0 will always be zero and hence usually just
replaced by an extra comma. (However, if bit 8 of R2 is set, R0 can be
used to call a specific font handle in the range 1 to 255, which must be
‘opened’ prior to the call.)
8.11
R1 Can be the actual string (in quotes) or a pointer to it. In this
example, the pointer ‘test$’ is used throughout, modifying its contents
as necessary for each demonstration point.
8.11
R2 bit 0 If set, justify string between R3, R4 (start position)
and last x-value visited by graphics cursor. This last cursor position
can conveniently be defined, if required, by a VDU25, 4 call, just prior
to the SYS call − see the “Line4” routine in the listing.
8.11
If not set, use R5 to justify (if bit 5 is set) or don’t
justify.
8.11
bit 1 If set, plot a ‘rubout’ box (in the font background
colour) using either the graphics cursor to define the box corners (if
bit 5 of R2 is not set) or the coordinate parameter block pointed to in
R5 (if bit 5 of R2 is set).
8.11
If the graphics cursor is going to be used, two cursor
positions need to be defined − one for each corner of the box. Again,
VDU25, 4 calls are a convenient way to do this − see the “Line2” routine
in the listing.
8.11
(If both justification and a rubout box are to be
defined by the graphics cursor in the same SYS call, three VDU25, 4
calls will be needed, the last one being the justification coordinates.)
8.11
bit 2 Reserved, must be zero.
8.11
bit 3 Reserved, must be zero.
8.11
bit 4 If set, coordinates are in OS units. If not set,
coordinates are in millipoints.
8.11
As bit 4 must be clear when bits 5 and/or 6 are set, it
is less taxing on the memory to keep to millipoints throughout and
‘forget’ bit 4. In the listing, the PROCs etc take familiar units for
their parameters and do the conversion to millipoints.
8.11
bit 5 If set, use R5 as below. (Bits 0 and 4 must be zero)
8.11
bit 6 If set, use R6 as below. (Bit 4 must be zero)
8.11
bit 7 If set, use R7 as below.
8.11
bit 8 If set, use R0 as above.
8.11
bit 9 If set, perform kerning on the string.
8.11
bit 10 If set, write string from right to left.
8.11
R3 Starting x-coordinate of plot (in OS Units or millipoints,
depending on bit 4 of R2)
8.11
R4 Starting y-coordinate of plot (in OS Units or millipoints,
depending on bit 4 of R2)
8.11
R5 Pointer to justification coordinate parameter block, if bit 5 of
R2 is set.
8.11
The block characteristics are:-
8.11
Eight 4-byte words, i.e. block size needs to be 32 bytes.
8.11
Offset+0 additional x offset (+ or −) added to each space
8.11
+4 additional y offset (+ or −) added to each space
8.11
+8 additional x offset (+ or −) between each letter
8.11
+12 additional y offset (+ or −) between each letter
8.11
+16 x-coordinate of bottom left corner of rubout box
8.11
+20 y-coordinate of bottom left corner of rubout box
8.11
+24 x-coordinate of top right corner of rubout box
8.11
+28 y-coordinate of top right corner of rubout box
8.11
R6 Pointer to transformation parameter block, if bit 6 of R2 is
set.
8.11
The block characteristics are:-
8.11
Six 4-byte words i.e. block size needs to be 24 bytes.
8.11
Offset+0, +4, +8 and +12 contain the four transformation factors
m1, m2, m3, m4 in the transform matrix:
8.11
m1 m3
8.11
m2 m4
8.11
which allows scaling, rotation and shear − but not
translation. (See later for more details.)
8.11
Offset+16 and +20 contain the x and y translation factors in
millipoints (as bit 4 of R2 needs to be zero)
8.11
R7 Length of string (sub-string usually), if bit 7 of R2 is set.
This permits the written string to be restricted to only a (leading)
part of the string. Useful for revealing/deleting part of a text.
8.11
Some examples of R2 values might help:-
8.11
R2=0 − Straightforward writing of the string, starting at R3, R4. (If
the string itself contains control codes they will affect the result in
their own right, of course. See “Lines” 9, 10 and 11 on screen.)
8.11
R2=&1 − Justify the string between R3, R4 and the last graphics cursor
x-coordinate. The string needs to contain spaces to see the effects of
this action. For instance, a single word surrounded by a space at each
end will appear neatly centred between R3, R4 and the graphics cursor
point. (Try it with a string longer than the normal space to fit it in.)
8.11
R2=&2 − Straightforward writing of the string, starting at R3, R4 − plus
a rubout box plotted in the font background colour with corners defined
by the graphics cursor.
8.11
R2=&20 − Write the string, starting at R3, R4, but use the coordinate
parameter block pointed to by R5 to adjust letter spacing and/or extra
space between words.
8.11
R2=&22 − As above, but also plot rubout box (in font background colour)
using values from the same coordinate block.
8.11
R2=&40 − Write string, starting at R3, R4, but using transform
characteristics carried in parameter block pointed to by R6.
8.11
R2=&400 − Write the string, starting at R3, R4, but write it from right
to left. (The first letter of the string is written immediately to the
right of the R3 xvalue, with subsequent letters in turn going further
to the right.)
8.11
With SYS "Font_Paint", the x, y coordinates of the writing start point
(carried in R3, R4) refer to the bottom left corner of the axes-aligned
rectangle which just contains the font letter (the ‘bounding box’). This
differs from the use of “VDU5 text printing” where letters are
referenced to the top left corner of the letter-defining rectangle. This
difference is very evident when transformation actions take place − see
later.
8.11
More details
8.11
Going through some of the example program screen output lines will be
helpful in bringing out some other points.
8.11
“Line1” − R2=0: Straightforward writing to the screen at a chosen x, y
point. Note that y-coord (of 50 OS units) is subtracted from the y% (top
of window) value. The 400 converts OS units to millipoints.
8.11
“Line2” − R2=&2: Straightforward writing to the screen at a chosen x, y
point − with the addition of a rubout box in the font background colour
(white here, from line 890). The two VDU25, 4 calls (at lines 1160 and
1170) set the bottom left and top right corners, in that order. Note
that they too need to be referenced to x% and y%, the window position.
8.11
“3eniL” − R2=&400: Simple backward writing. The vertical reference mark
in “Line4” also shows the start position for this line.
8.11
“Line4” − R2=&1: Text is justified between the starting point at R3, R4
and the last graphics cursor x-position − here defined by a VDU25,4
call. For convenience, a vertical reference mark has been put on the
screen at this graphics cursor position, to make the justification
action clear. Note what happens if the string does not contain a space
at each end.
8.11
“Line5” − R2=&20: Fancy effect by using the coordinate block at R5. Here
a positive x-shift plus negative y-shift is added between each letter of
the string. The starting x-point for the writing is zero (wrt window LH
edge).
8.11
“Line6” − R2=&22: As above, but a rubout box is also drawn − as defined
by the last four parameters of the block at R5. Note also that the Font
background colour is changed temporarily for this “Line”, by SYS
"Wimp_SetFontColours". The colour number was chosen from the Wimp
Desktop palette, ensuring that it had enough contrast to show on
hardcopy also.
8.11
“7” and “Line8” − R2=&40: “Line7” shows three examples of using
transformation on a single letter, all with the same starting point at
R3, R4. The letter is firstly scaled by 2 (equally in x and y axes) and
then by 4, both without rotation − and then is rotated by 45 degrees at
scaling factor 2, without shear i.e. no distortion of the shape. “Line8”
shows three examples on a longer string, mainly to demonstrate that the
SYS call action applies to the whole string as a single entity. Note
also here that R3, R4 defines the bottom left corner of the window, with
the transformation block supplying the offsets to place the result where
it appears.
8.11
The screen clearly shows that the scaling and rotation origin points are
at the bottom left corner of the ‘bounding box’ of the letter/string,
i.e. that corner stays put throughout.
8.11
Some further explanation of the transformation block is needed:-
8.11
Matrix Units − The SYS call requires the first four parameters (m1, m2,
m3, m4) to be in a 32-bit real-number format where bits 16-31 represent
the integer part and bits 0-15 represent the fractional part, i.e. the
‘bicimal point’ always sits between bits 15 and 16.
8.11
Real numbers are necessary because scaling and rotation options would be
extremely limited if only integer values were used.
8.11
The simplest way to put the values into the right format is just to
multiply them by 65536 (&10000), as in the listing. This effectively
moves everything 16 bits to the left. (You can use <<16 for integer
numbers, but not for shifting real numbers − multiplying by &10000 does
the equivalent thing for reals or integers.)
8.11
The last two parameters (m5, m6) need to be in millipoints and are
simply the x, y translation shifts to be applied w.r.t. the starting
position in R3, R4. As R3, R4 are referenced to the window edges, m5 and
m6 need not be.
8.11
Scaling − If parameters m2 and m3 are kept at zero, then m1 and m4
control the x and y scaling respectively. In the listing,
‘PROCsettransform()’ takes normal values for scaling. i.e. 1 means ‘no
change’, values less than 1 mean smaller and values greater than 1 mean
bigger. m1 and m4 can be different but need to be the same if you want
to scale whilst preserving the original shape.
8.11
Rotation − All the first four parameters are used to rotate the string.
If ‘theta’ is the required rotation angle (anticlockwise being positive)
then both m1 and m2 must be set to cosine(theta), with m2 set to
sine(theta) and m3 set to −sine(theta). (Reversing the signs of m2 and
m3 makes the rotation clockwise.)
8.11
In the listing ‘PROCsettransform()’ takes a single rotation parameter in
degrees.
8.11
From the listing, you will see that combined scaling and rotation,
without any distortion of the original shapes, simply requires each of
the ‘rotational-only’ values of m1, m2, m3, m4 to be multiplied by the
scaling factor. If x and y scaling factors are not the same then, as the
listing shows, m1, m2 are multiplied by the x-scale value and m3, m4 are
multiplied by the y-scale value − in order to introduce no further
distortion.
8.11
(“Line8” shows this on screen clearly − the string is scaled by 2 in the
x direction and by 4 in the y direction.)
8.11
Shear − If the symmetry conditions described above for scaling and/or
rotation are not preserved, then some form of shear distortion will
result. However, at its simplest level, if m1, m4 are kept identical,
then m2, m3 values other than zero will give y-shear and x-shear
respectively.
8.11
‘Suck-it-and-see’ is the best way to explore the transform matrix, and
the listing PROCs etc provide a useful vehicle for that.
8.11
“Line9”, “Line10”, “Line11” − R2=0: In all these cases, the plot type is
straightforward, but the string definitions include control codes within
them.
8.11
The PRM gives details of control codes 9, 11, 17, 18, 19, 21, 25 and 26,
which have parallels with the VDU codes of the same number. Some are
‘not preferred’ by Acorn. In this example, codes 9, 11 and 19 are used.
8.11
“Line9” uses control codes 9 and 11, which effectively move the text
cursor left/right and up/down respectively. Each is activated by
including appropriate CHR$() expressions within the string to be
written. The action affects the string items appearing after the
expression, as the example shows.
8.11
Both codes 9 and 11 require three parameters to accompany them and this
is achieved by sending three CHR$() in sequence after them. The format
is to split the 3-byte number representing the required cursor shift (in
millipoints) into three 1-byte numbers representing the low, middle and
high bytes of the original number respectively − the high-byte
preserving the sign. The routine in the listing removes the pain and,
helpfully, was provided in the PRM.
8.11
In the example, the control code 9 sequence, to shift the following
string 196 OS units to the right, is:-
8.11
CHR$(9)+CHR$(64)+CHR$(50)+CHR$(1)
8.11
and the last three numbers derive from:-
8.11
1*&10000+50*&100+64=78400 (=196*400
8.11
millipoints)
8.11
“Line10” and “Line11” show colour changes and are much simpler. Control
code 19 requires seven CHR$() after it: the first three being the r, g,
b palette entries for the required font background colour, followed by
similar for the foreground colour. The call picks the nearest colours on
the existing palette for use. The seventh is the maximum foreground
colour offset for anti-aliasing (0 to 14).
8.11
(I have kept to palette entries in the form rr, gg, bb, i.e. both
nibbles the same.)
8.11
“Line11” has only been included to show that a colour changed by this
method persists after the call until a further change.
8.11
Both “Line10” and “Line11” show how a change affects everything in the
string after the embedded control code(s).
8.11
“Line12” − Finally, “Line12” is written twice with just a vertical shift
to separate them − firstly with R2=0 and then with R2=&200. The effect
of kerning is clearly visible from the small difference in the overall
length of the line. (The string letter sequence has been deliberately
chosen to show large kerning movements.)
8.11
Rubout boxes
8.11
I’m not familiar with practical uses of ‘rubout boxes’, but as there are
several SYS “Font_” calls enabling you to find out the physical size of
characters and strings before and after they have been written to the
screen − e.g. bounding box size, caret position, string width − it is
clear that these would be useful to help define the corners of rubout
boxes in practical applications. u
8.11
8.11
TableCalc
8.11
Colin Singleton
8.11
TableCalc (£31.50 from iSV) is not a budget spreadsheet package but, as
its name implies, it is a table-drawing utility with calculation
facilities.
8.11
The package arrives on a single disc, with no printed documentation.
There is, however, a 2,400 word text file which seems quite adequate.
There is also a facility to print a quick reference card, which lists
keystrokes and default print styles, and explains the button bar.
8.11
Clicking in the normal way loads the program via the iconbar. The window
starts with a ‘table’ consisting of a single cell which may be expanded
as desired, and data may be entered or calculated using the facilities
provided. Alternatively, a table may be initiated by dragging a CSV
(Comma separated variables) file onto the TableCalc icon. Note, however,
that if you create your data in a text file using Edit, you must change
the filetype to CSV before loading into TableCalc. In my simple example,
the list values 48.19 16.04 ... 6.67 was generated in this way, and
the rest of the table built using TableCalc. Most of the features of
TableCalc can be described by explaining how this table was created.
8.11
A worked example
8.11
My objective was to print a list of ten values, and calculate their mean
and standard deviation, a routine statistical exercise. Starting with
the list of ten values, I created extra, empty, columns to the left and
right of the list − easily done using menu selections. The line numbers
are generated using an Initialise function, by which the user can
specify the first value and the step.
8.11
I have specified a Headings style for the line numbers. A number of
default styles are provided, which can be allocated to cells at will.
The font, text size and justification of each can be changed by the
user, as can the text and background colours. The widths of the columns
can be changed, but the depth cannot. Nor (apart from specifying left,
centre or right justification) can the position of the text within each
box. It is apparent from this example that Homerton text is positioned
lower in the box than Trinity of the same size. Line thicknesses cannot
be varied, though lines can be made invisible.
8.11
Mathematically, the square of the standard deviation of a list of
numbers is called the variance, and is equal to the mean of the squares
of the numbers minus the square of their mean. In this example,
Ú(3377.03 − 49.97²) = 29.67. To calculate the standard deviation using
TableCalc, therefore, I need to create a column containing the squares
of the given numbers. This is done, spreadsheet-style, by specifying the
single cell alongside the first value to contain the square of that
value. The right-hand column is then selected and a Copy Down function
invoked, which generates the corresponding calculation on each line.
8.11
The standard arithmetic operations can be used in equations to calculate
cell values, as can a number of built-in functions. Surprisingly,
although the function ln(X) is available, its converse exp(X) can only
by specified by the rather cumbersome expression const_e()^X. The sum or
the mean of a block of cell values can be specified in a cell
calculation, as demonstrated by the two mean values in my example. My
calculation is completed by specifying the equation for standard
deviation in terms of the two means. Two extra rows must first be
generated to contain these values.
8.11
The various text items are entered in the usual way, extra rows having
been inserted by menu selection for the headings. The cells in the top
row have been joined to create one long cell − but cells cannot be
linked vertically in this way. Styles can be specified more or less at
will for the text cells.
8.11
Restrictions
8.11
That, in a nutshell, is it. The above is only a simple example, but it
illustrates the essential features. Had these features been incorporated
in Dalriada’s TableMate II, they might have satisfied the wish list
requests of Dave Floyd (Archive 8.8 p73) and Jim Nottingham (Archive 8.9
p28). Unfortunately, the grid-drawing facilities of TableCalc are so
restrictive that this package alone does not meet these requirements. It
is possible to dump the cell contents from TableCalc to a CSV file, and
drop this into TableMate, but this seems a laborious way of achieving a
fairly simple objective. Perhaps iSV could put these thoughts on their
list for a future upgrade.
8.11
TableCalc has its own filetype for its output, which is OLE-compatible
with Impression etc, so I can, and undoubtedly will, use this package
for the type of calculation described above. There are shortcomings,
however. Supposing I now wish to perform the same calculation on a new
list of numbers?
8.11
At its simplest, if one of the values is wrong, I can correct it, though
this is not quite the simple cursor-delete-enter you might expect.
TableCalc will then re-calculate the consequential values as necessary.
If I wish to add another value to the list, I can insert a new row and
enter the value. I must also enter the line number and define the
calculation for the right-hand cell − these are not done automatically.
If the new line is inserted after the current last data line, I must
redefine the mean cells, but if the new line is inserted within the
list, these will be redefined automatically. Deleting a line is somewhat
simpler. The means are redefined correctly, but the line numbers (if the
deleted line is not the last) are not.
8.11
In real life, I do not need to see the squares of the values
individually listed in my example − they are only the means to the end
of calculating the standard deviation. Having completed the operation, I
can now delete the third column before printing. However, I cannot then
amend or add a value, because TableCalc will then be unable to perform
the required re-calculation. It is not possible to define a column for
calculation only, or to reduce its print width to zero. If I wish to
repeat the calculation for a completely new list of values, I cannot
simply drag a CSV file containing the new values into the appropriate
block of cells. I can only start again with the new list, and repeat the
entire table-building process, including all the cell definitions and
styles, step-by-step.
8.11
“iSV aim to produce a new item each month” (Archive 8.9 p6), and this
appears to be the offering for February 1995. I fear that quality many
suffer for the sake of quantity, and that TableCalc is perhaps a case in
point. At £31.50 from iSV, TableCalc will hardly break the bank, but you
need to ask whether it will serve a useful purpose. u
8.11
8.11
Burn ’Out
8.11
Alex Card
8.11
Billed as a buggy-race game on roller-coaster tracks, Oregan’s latest
offering finally gets the green light after delays that were bordering
on ‘Simon The Sorcerer’ proportions. Problems arose in the two-player
serial link-up options, and so it was decided to postpone this feature
and offer it as an add-on at a later date.
8.11
The programmers have thoughtfully included an automatic configuration
system whereby RAM, RISC OS version and ARM number are detected and used
to the full. It tells the user that they’re using an ARM 610 with loads
of memory, or an ARM 3, etc. The only prerequisite is that 2Mb of RAM is
the minimum. This information is used to choose optimum settings on such
as parallax scrolling backgrounds, texture mapped tracks and graphic
detail level. Preferences can be selected by the user too but, in most
cases, the program knows best and it would be wise to stick with what
you’re given at first, rather than risk the speed of the game suffering
by trying to have texture mapped tracks with an ARM 2!
8.11
Presentation
8.11
Presentation is slick, and an intro sequence more familiar to Amiga
owners is shown, though naturally this can be skipped. A vast array of
options is available to allow joystick, mouse or keyboard definitions to
be set, then it’s off to pick your driver and buggy.
8.11
Each of the ten drivers is introduced with a ‘mug-shot’ and a personal
profile, but whether you choose Victor the Count or Sam the Blonde Babe
has little bearing on the game other than their characteristic
appearance behind the wheel and various whoops of joy as you pass a
competitor. The artist seems to have been influenced by Japanese comics,
where big eyes and button noses proliferate. There are five buggies to
choose from, ranging from light and fragile to built like a tank − make
your selection and it’s off to the track.
8.11
Getting started
8.11
You can start on easy, moderate or hard levels but you’ll soon find that
it’s nearly impossible to progress far unless you start on easy. A
preview of the track is displayed showing where the turns and jumps are,
then you sit on the grid in your grey buggy, waiting for the off.
Control is so simple, even a child of 30, like myself, can manage it!
Basically, stay on the track and try to avoid crashing into others cars
and obstacles as much as possible. There are only two gear settings,
high and low, so once you’ve shifted up to top, you hopefully won’t need
to alter them too much, unless you come to a grinding halt.
8.11
The graphics
8.11
Graphically, the game is impressive, with excellent use of colour and
all objects clearly visible, so you can’t claim to have hit something
because you didn’t see it. I especially like the texture map track
effects − almost like wallpapering in 3D. The track fades into the
distance and appears to be coated with logs, sand and tile effects.
There are numerous objects at the sides of the road to be avoided,
including trees, cacti, houses and notice boards, plus the usual
on-course hazards like water, sand and girders.
8.11
There’s a ‘cutesy’ feel about the whole affair but, if I have a
complaint, it’s just that everything’s a little too geometric for my
liking, rather than a more natural look. The parallax backgrounds are
neat, and there are plenty of them, with lots of variety, including
woodland, desert and seaside. The programmers have certainly put a lot
of effort into Burn ’Out, and it shows.
8.11
And sound
8.11
Sound, too, is used to good effect, with masses of tunes during the game
and on the menu screens. Fortunately, these can all be toggled on or off
for those late night sessions. I often find that sound is a bit of an
afterthought in many Acorn games but, with Oregan being the producers of
the excellent Digital Symphony, they’ve made good use of the package
within Burn ’Out.
8.11
The game
8.11
The aim of Burn ’Out is to complete a given number of laps in the
allotted time and also finish in the top three places. In practice, time
will be your worst enemy − you’re far more likely to be in first place
and run out of time than be in fourth and complete it. Buggies appear to
have a noticeable ‘wobble’ which causes them to drift off the track even
when sat on the grid. It’s less noticeable during the race, but a
strange oversight nonetheless.
8.11
Despite the descriptions of the five buggies, I could find no real
difference between their performances or reliability. I deliberately
tried using a so-called light and fragile Twin Turbo, smashing it
relentlessly in an attempt to destroy it, but failed miserably. There
were no breakdowns of the EType ilk, just the usual out-of-time, ‘game
over’ scenario. I would have hoped for some artificial intelligence from
opposing vehicles, but they have very little and bump into obstacles
with alarming regularity and cause roadblocks by sheer weight of numbers
getting stuck and not being able to get out of it. They do drift towards
your buggy if you’re travelling at similar speeds but this appears to be
more by accident than design.
8.11
Another anomaly that struck me was how many of the same car and driver
appeared to be racing against me at one time. When you start seeing four
of the same in front of you, it makes you wonder about your sanity.
Fortunately, if a car you need to pass is in front of you, a number will
appear above it indicating its position in the race.
8.11
Getting better
8.11
Early levels are very easy but need to be completed each time if you are
to progress further. After each rostrum placing, you gain money with
which to improve your buggy; grippier tyres, a more powerful engine and
a better gearbox are on offer for the right price. If you’re feeling
frivolous, 50 credits will pay for a paint job to rid yourself once and
for all of that sad, grey exterior ... anyone for a nice orange lustre?
8.11
Going straight onto difficult or even moderate levels is virtually a
non-starter; without having a souped-up buggy, you’re doomed to
ignominious defeat. There’s no point in saving money for a rainy day
either; if you’ve got it, spend it and, personally, I’d recommend
boosting your engine power every time. One particularly irksome quirk is
that once the clock hits zero, that’s it − there’s no chance of momentum
carrying you over the line, as in Lotus Turbo, to give you a fighting
chance. The number of times I’ve come to an abrupt halt on the chevrons
in front of the finishing line is unbelievable. Once I even crossed the
line on the stroke of zero, was given the ‘Congratulations’ message but
had this over-written with ‘Game Over’. Come on guys, this should not
happen. Fortunately, you can have up to five credits so can restart from
the same level until they run out − this eases the frustration slightly.
8.11
Just in time?
8.11
Just when you think you’ve got it sussed, in come the time bonus gates.
These must be driven through cleanly in order to boost your time
sufficiently; miss one and you might sneak through but miss two and it’s
curtains. The gates are very narrow and, with other buggies bumping you
around, coupled with the inherent wobble factor, negotiating them is
very tricky. As they first appear on the last of the easy levels, this
can become a source of annoyance, as your race can be over in just 5
seconds! Certainly, this level is far harder than many of the moderate
ones and I think the programmers should have placed it accordingly.
8.11
Overall
8.11
Gripes aside, Burn ’Out is a fun game that will appeal primarily to
younger players, due to its cartoon graphics and ease of getting
started. However, I’m not sure where it fits into an Acorn market which,
for once, is well catered for in car racing games. For me, Saloon Cars
Deluxe wins the simulation stakes, Lotus Turbo has speed and a brilliant
two-player mode on its side, Stunt Racer 2000 has all the thrill of the
spill and FTT cleans up on pure originality. Burn ’Out certainly isn’t a
bad game at all, but the numerous niggles would, I’m afraid, put me off
coming back to it for that ‘one more go’. On the plus side, it’s one of
the few racing games that works directly on the Risc PC (though most of
the others do via Game On!). There are plenty of tracks, and maybe the
two-player link up will change how it fares but, for me, the game could
have been much better. u
8.11
8.11
CC Graphics Loaders
8.11
David Thornton
8.11
“Graphics Loaders”, from Computer Concepts, consists of a pack of four
loaders which allow a number of additional bitmap file formats, besides
sprites, to be imported into Impression and ArtWorks. The loaders
require RISC OS 3.1 or later and a hard disc. The cost is £39 + VAT or
£43 through Archive.
8.11
Installation
8.11
The Graphics Loaders are provided in a CD style disc box containing a
small, twelve page manual and a single disc. The disc contains the
familiar CC !Installer program and two directories. One directory
contains example JPEG pictures for use with the JPEG loader and the
other, named Docs, provides information in two text files (Protocol and
Spec) about how to write your own loaders. Both these documents make
interesting reading, even to the non-programmer like myself. I will
explain these documents later.
8.11
A number of dialogue boxes in the installation program, similar to the
ones for the Impression and ArtWorks installer, allow you to select
which of the loaders you wish to install. Installation is very quick.
The loaders are installed inside the !CCShared directory (inside
!System) and are completely transparent to the user. There is no need to
load anything onto the iconbar or to set up any configuration options.
Re-boot your machine and you do not need to worry about the loaders
again.
8.11
The loaders in use
8.11
The four loaders provided in the pack are for Clear, JPEG, PhotoCD and
TIFF bitmap files. The TIFF loader is a much enhanced version of the
TIFF loader supplied with ArtWorks 1.5 and Impression. The JPEG and
PhotoCD loaders are unique to the Graphics Loaders pack because they are
not supported by ImageFS, the other main commercially available graphic
loader (reviewed in Archive 8.6 p71). The loaders currently only work
with the Impression range and ArtWorks 1.5. This is a disadvantage but,
at the same time, many applications like Photodesk provide their own
import options.
8.11
Importing one of the four supported bitmaps is very easy. Just drop the
bitmap file onto an Impression frame or onto an ArtWorks page and the
relevant loader is used.
8.11
The Clear loader is the simplest of the four loaders. It is also used as
the basis of an example of how to write your own loader. Dropping a
Clear file onto either application simply loads the bitmap as if it were
a sprite or drawfile without any windows popping up. The other three
loaders are slightly more complicated.
8.11
8.11
Dropping a JPEG file into either application produces a window entitled
JPEG/JFIF Translator v1.05. The JPEG window displays information about
the JPEG type, its resolution and the output size. The latter changes,
depending on which of the various options are selected. The JPEG loader
also allows you to specify whether you require the JPEG to appear as an
8-bit greyscale, as an 8-bit colour file, or as a 24-bit colour file.
You can also set whether you require simple, Floyd/Steinberg or no
dithering. The two sets of options are selectable via two sets of three
radio buttons. Finally, selecting ‘process’ imports the JPEG and the
window then disappears.
8.11
8.11
The PhotoCD loader functions in the same way as the JPEG loader,
although the options are different. The loader allows the import
resolution to be selected, and all of the six PhotoCD base resolutions
are available although I have always found Base/64 to be greyed out. I
wonder if CC have not implemented this yet? The image appearance (8-bit
greyscale, 8-bit colour and 24-bit colour) can also be specified as with
the JPEG loader.
8.11
8.11
The TIFF loader allows Grey, RGB and CMYK TIFF files to be imported, the
latter containing true 32-bit colour (4000 million colours). The loader
can cope with many different TIFF filetypes including compressed ones.
The output bpp can be specified and so can the dithering options, as
with the JPEG loader.
8.11
Programming
8.11
The loaders do not have as wide a range of import facilities as ImageFS
but their programming potential makes up for it. The Spec and Protocol
files on the disc describe in detail how to create your own loaders. A
new loader does not have to import a graphic − it could be used for
exporting graphics just as easily.
8.11
It is also possible to write import and export loaders for other types
of file − i.e. files which are not bitmaps. The potential of the
programming environment behind the loaders is enormous. Computer
Concepts have effectively devised a way for a program to manipulate any
bitmap graphic without having to know anything about it. Their system is
a bit like the modular upgrade feature of ArtWorks where additional
tools can be added with ease. The separate loader for each bitmap
approach allows a new loader to be devised without a rewrite of a whole
program or of any other loader. Any application should, in theory, be
able to recognise any new loader immediately.
8.11
Dislikes
8.11
The loaders are not as fast as other alternatives such as ImageFS.
Computer Concepts have assured me that this will be addressed in the
future.
8.11
Another thing that annoys me is that when a loader imports a bitmap into
Impression, it always converts it to a drawfile which is the internal
file format of Impression. ArtWorks uses its own internal file format.
The disadvantage of this is that it is impossible to OLE a file directly
to be edited, for example in Photodesk. You have to export the graphics
as a drawfile and then save it out from Draw as a sprite. I would prefer
that the loaders imported the graphic as it was, keeping it as the same
filetype (e.g. JPEG), or converted it to a sprite. Both these options
should be possible. The fact that the bitmaps are converted to drawfiles
is the fault of Impression and not the loaders. It also happens with
sprites, although sprite files are tagged as sprites so that OLE to a
bitmap editor does work.
8.11
One of the reasons for the use of the drawfile might be because
drawfiles keep more of the dimensional information of a bitmap (users of
the ScanLight scanner software will know that the same principles apply
when saving a scan. The scan can be saved as a drawfile or as a sprite,
the former retaining dimensions and resolution information.) I am
wondering whether ImageFS actually does keep the extra dimensional (and
resolution) information provided in foreign bitmaps, especially TIFF’s,
as it converts all bitmaps to sprites and not drawfiles. The new RISC OS
sprite format does allow for dimensional (and resolution) information
etc, but RISC OS 3.50 does not implement this. Does anyone know whether
ImageFS keeps this information during import?
8.11
The loaders contain the old filetype icons for PhotoCD and JPEG files.
Having more than one icon representing the same filetype is both
annoying and confusing. I have designed some new graphics loader icons
and included the correct filetype icons with them. They are only
suitable for a high resolution monitor. They are included on this
month’s disc (space permitting) and a number of other new icons are also
provided, including a nice new !CCShared directory icon and a new
Impression flat-file icon which resembles the style of the original.
Please read the ReadMe file accompanying the sprites for more
information.
8.11
Future
8.11
I believe that the graphics loaders, with a revised appearance and
compatibility with all other applications which support sprites, have
excellent potential. When RISC OS finally decides to recognise the
resolution and other information provided in the new sprite format, the
loaders should also function better. Some enhancements could include:
8.11
• Additional loaders for MacPICT2 and GIF files.
8.11
• Conversion of the bitmap to sprite or keeping it as the original
bitmap, for Impression.
8.11
• Compatibility with other applications.
8.11
Conclusions
8.11
The Graphics Loaders are an excellent package. I believe the separate
loaders idea and the “program your own loader approach” makes it a
winner over ImageFS in this respect. Unfortunately, they are only
supported by ArtWorks 1.5 and Impression. There is no reason why the
loaders should not be designed to work with all applications. At the
moment, developers have to include a piece of code in their own
application which allows them to use the loaders. I believe that it
should be the other way around, as with ImageFS. The loaders should be
able to function with any application without the application having to
have any code telling it how to use them.
8.11
Example: Dropping a TIFF file onto Eureka (which Eureka cannot
recognise) should invoke the TIFF loader automatically. The user would
then be given the option to import the TIFF into Eureka as a sprite. If
Eureka could understand TIFF files, but did not contain the code to
import them, the loader would also allow the user to import the TIFF as
a TIFF.
8.11
With the addition of the GIF and MacPICT2 loaders, and the other
changes, the package is set to be a winner. I doubt whether many people
would require other loaders, such as IMG or Targa, but they could be
written with ease if required. ImageFS does not yet support two major
formats (JPEG and PhotoCD), which makes it useless for me, and many
other users. For more information about the loaders, users of Impression
can load the online help program and type “Graphics Converters” and
“Graphics Converters technical details.” A line in the latter page
states, “If you develop any interesting converters please keep Computer
Concepts informed since we may be interested in purchasing or
publicising the program.”
8.11
I prefer the Graphics Loaders to ImageFS, despite not being able to use
them with programs other than Impression and ArtWorks. In all my DTP and
graphics work, using ArtWorks, Publisher and Photodesk, I have hardly
ever needed to use any file formats other than the ones supported by the
Graphics Loaders. As software companies merge, I would not be surprised
if most of the smaller file formats die off and a few main formats are
left.
8.11
Graphics Loaders versus ImageFS
8.11
Pluses and minuses for Graphics Loaders are:
8.11
+ Separate loader/filter for each file format (easier to update separate
loaders).
8.11
+ Detailed and well-documented programming development environment for
use by anyone. Loaders can be written which import or export bitmaps or
other files.
8.11
− Fewer formats supported than ImageFS.
8.11
− Slower than ImageFS.
8.11
− GIF and MacPICT2 not supported (but could be if loaders were written).
8.11
− Only work with ArtWorks 1.5 and Impression (at the moment).
8.11
Pluses and minuses for ImageFS are:
8.11
+ More formats supported than with GL (especially GIF and MacPICT2).
8.11
+ Faster than the Graphics Loaders.
8.11
+ Can be used by any program, and not just two as with GL.
8.11
− Non programmable by the user.
8.11
− It is a self-contained program, so more memory is required and it is
more difficult to add further formats.
8.11
− JPEG and PhotoCD not yet supported.
8.11
What I really would like is a combination of the two to get the best of
both worlds!
8.11
I would appreciate any feedback from other users of the Graphics
Loaders, as well as any other comments about the Acorn platform. If you
would like a reply then please include a stamp. My address is: David
Thornton, 1 Castle Court, Lower Burraton, Saltash, Cornwall PL12 4SE. u
8.11
8.11
Turbo Driver Network Spooler
8.11
Mike Battersby
8.11
Many users of Acorn machines will be familiar with the TurboDriver
printer drivers from Computer Concepts. (“Love the speed, hate the
lead”?) Now available is a network spooler which will allow TurboDrivers
to print to remote printers over the network.
8.11
The purchase of it also acts as a site licence for TurboDrivers so, at a
price of £149 +VAT (£166 through Archive), it would represent excellent
value for a secondary school or other substantial site, yet would still
be affordable for a smaller school such as a local special school where
I installed one recently for their Ethernet network of seven A5000s.
8.11
The package includes installation discs for all the printers supported,
Canon, HP and Epson for the TurboDrivers, plus the LaserDirect series.
One TurboDriver lead is included but further leads may be purchased at
£10 per lead. One lead is needed for each printer server.
8.11
The software is installed by virtue of installation applications, with
the choice of installing as a ‘Spooler’ machine (i.e. printer server) or
a client. (My tip here is always to install to a previously unused copy
of !Printers.)
8.11
One little oddity is that if you are installing more than one type of
printer, e.g. a Canon inkjet and an HP laser, and if you set up a
printer definition file before installing the second one, the printer
definition is wiped clear. To avoid this, simply install the TurboDriver
for each machine required and then add the printer definition files
afterwards.
8.11
The spooler machine (printer server) has an additional application,
!CCSpool, installed which deals with the spooled output from the client
station.
8.11
It is quite straightforward to have more than one ‘spooler’ machine.
!CCSpool allows itself to be given a name to identify it so that
different spoolers can be given different names, e.g. ‘Laser’ for a
Laserjet and ‘Colour’ for a colour inkjet. !Printers allows the
‘Connection’ option for the definition files to be set to network
(‘Econet’), and the appropriate printer server can be named in
accordance with the names given to !CCSpool. I couldn’t actually find
instructions on this in the documentation, but perhaps it is buried in
there somewhere.
8.11
Once set up, with the printer files set as ‘Active’ in !Printers,
choosing a printer server is just a matter of clicking on the relevant
!Printers icon on the iconbar. So I set up one called ‘Laser’ for a
laserjet, one called ‘Colour’ for a BJ600 and all the pupils need to do
is choose whether they want to print to the laser or in colour and click
on the relevant printer driver icon before printing.
8.11
Whilst I have not made any comparative timings, the speed seemed very
impressive, with control being returned very quickly to the client
station (about 5 seconds for printing this article over Ethernet) and
overall printing time is little more than printing to a standalone!
8.11
One thing to beware of is that the TurboDrivers are very sensitive to
which !System they use, because installation sets up various items in
the !CCShared directory in !System. Thus, if !Printers is to be served
over a network, an appropriate !System must also be served (or at least
be available). Failure to find the items it wants tends to cause the
TurboDriver to report strange errors related to a BackEnd$File, which
could be taken to insinuate that the driver is trying to turbo in ever
decreasing circles!! Care must therefore be taken to export a suitably
set up !System.
8.11
It would be helpful here to be able to select the !System folder to
which the TurboDriver is installed, because a file server may have
different ones for its own use and for export. I’m sure an earlier
Computer Concepts installation program for one of their pieces of
software had this option. Otherwise, double-click on the appropriate
!System folder before installation and, as a safeguard, use *Show
System* to check that the system path points to the one you want.
8.11
There are a couple of other slight quirks, such as the error symbol
appearing on the iconbar icon for no apparent reason, though it still
prints quite happily. Version 4.2 produced a black stripe on HP prints
from non-CC applications, but version 4.3 seems to have sorted this out.
Incidentally to install to a standalone machine, install as a ‘Spooler’
machine and then delete !CCSpool. It is also advisable to have 4Mb or
more memory on each station.
8.11
Conclusion
8.11
A very useful and powerful high speed network driver/spooler. u
8.11
8.11
The Commotion Control Box
8.11
Mike Battersby
8.11
According to the OFSTED (Office for Standards in Education) review of
inspection findings in 1993/4, out of the IT requirements that schools
were expected to deliver, the control element was often missing.
8.11
At secondary level, the National Curriculum broadly expects pupils to
construct sets of instructions to control devices in varying degrees of
sophistication and to relate control commands to information from
inputs. Although much of this can be achieved using screen only
simulations, such as Logo, much of the point is lost unless pupils
experience control of devices external to the computer itself.
8.11
One set of equipment that could be used is the new Control Box from
Commotion. It can be bought by itself or, more economically, in a set,
comprising the box, connecting lead to a RISC OS computer (PC and BBC
versions also available), a model chosen from a choice of three (more
about these later), and the controlling software called !CoCo. You also
need a user port for control and an analogue port if you want to use
optional additional analogue sensors. Commotion supply an HCCS
user/analogue port that will do both, or there are others around on the
market. I tried it with a Morley one and that worked OK. The box has
switchable voltage, 6v or 9v output.
8.11
The control box can be used with any appropriate inputs or outputs up to
a total of eight inputs, eight outputs, plus four motors. However, this
article will focus on its use as part of the all-in economical ‘bundle’
pack. The models available to choose from are a traffic light set, a
‘house’ or a clown face. Here, though, I will only consider the traffic
lights and the house, as they are the ones I tried out and are more
suitable than the clown for secondary schools. Both models are made from
‘Corriflute’, a sort of plastic cardboard which looks quite flimsy, but
is actually very tough. Both models are quite fiddly to assemble.
8.11
The traffic lights consist of a red, amber and green light, an
illuminated ‘wait’ sign and a push button. Thus it fulfils the need for
relating output to inputs, e.g. so that pressing the button sets a
sequence of light changes in motion à la pelican crossing.
8.11
The house consists of a house facade with four windows and a door and an
outside street light. There is also a buzzer, set in the wall, in the
style of a house alarm. The inputs consist of a magnetic switch,
normally situated at the door, a light sensor at the base of the street
lamp and a push button by the door. This also provides scope for
relating inputs to output control and, in fact, offers more scope than
the traffic lights for variety in the problems set, a number of which
are suggested in the accompanying booklet.
8.11
Both models’ sets of inputs and outputs are supplied attached to a
ribbon cable with colour coded banana plugs to plug into the control
box; green and black for inputs, and red and black for outputs, which
helps make sure pupils don’t plug them in the wrong ones.
8.11
The screen display of CoCo is clearly laid out with separate, but
aligned, windows for each of the sets of inputs, outputs and motors, and
the ‘panel’ through which the instructions are input. The panel includes
help on the commands available and a ‘panic’ button to reset everything
in one go.
8.11
The control language can be entered through a dialogue window, where it
can also be edited. Procedures can be constructed, saved and re-loaded
at another time. A window of a list of the commands is available and,
when a command is clicked on, it is entered in the dialogue of
instructions. This is very useful to avoid spelling mistakes or
mis-types. Instructions can be very simple or built up into complex
procedures. A simple instruction for the light sensor (connected to
INPUT 1) to turn on a street light (OUTPUT 2) when it gets dark, on the
basis that the sensor goes OFF when it gets dark, would be:
8.11
WAIT UNTIL INPUT 1 OFF
8.11
SWITCH OUTPUT 2 ON
8.11
There are a variety of such boxes on the market, but at £190 (+VAT) for
the all-in pack (£230 including user/analogue port), it is competitively
priced. Inevitably, though, with control equipment, this starts to add
up if you want enough for class sets, but taking into account what is
included, it is well worth considering.
8.11
8.11
Reptile
8.11
Richard Rymarz
8.11
One area of the school curriculum where maths, technology and art
overlap is pattern creation. Designing, editing and producing patterns
of every kind is a laudable aim, giving children the opportunity to use
their creative and aesthetic skills. I first heard of the word
‘tessellate’ when I was at college many years ago − it involves the
repetition of shapes that match tightly to produce a mosaic. I have used
the concept on many occasions at all levels in school.
8.11
Tiles and mosaics
8.11
Computers have always been an excellent tool to create patterns of every
sort. One of the earliest programs for the Acorn range of computers was
Mosaic, published by 4Mation − which is still available, I believe. The
latest tool to reach the market is Reptile from Kudlian Soft. This
purports to be an “application that allows the user to create and
manipulate tiles based on either a square, triangle or hexagon.” The
sides of the tile can be changed by dragging out straight or curved
lines and, in order to ensure accurate tessellation, any side can be
copied to the other side of the shape. These tiles are then placed on a
grid. Furthermore, tiles can be of any size, can be rotated through any
angle and can be reflected through any plane.
8.11
Reptile − the program
8.11
Reptile loads onto the iconbar in the form of a green lizard. Clicking
<select> opens two windows, the first being the tile editing window and
the second a grid upon which the tiles are placed.
8.11
The edit window
8.11
By default, this shows a square, although it is easy to change the shape
to a triangle or a hexagon. The basic shape can be manipulated using the
Alter tool. This allows extra round shaped points to be inserted into
any line of the basic shape. These can be pulled around in any fashion
thus creating new shapes. However, the four square basic points of the
shape cannot be changed. In practice, this means that some quite complex
shapes can be drawn. There is full colour control over line and fill
colours, but not line width. The whole process has a familiar feel about
it, reminding me of Draw or Artworks.
8.11
Other tools are concerned with manipulating the sides of the shape: Half
Side which is needed when the triangle is used as the basic shape, since
it ensures that each alternate triangle is rotated through 180° for
tessellation purposes; Copy Side which does the same thing for the
square and hexagon basic shapes; Cycle Side which allows each side in
turn to be cycled through horizontal and vertical planes; Clear Side
which restores the side to the basic shape; and, finally, Cancel which
restores the shape into editing mode.
8.11
There is also a drawing tool that allows shapes to be constructed within
the edited shape, although this is limited to four drawings of five
points each. This may seem limiting and is a result of memory
restraints. Drawn objects are also fully editable, with control over
line and fill colours.
8.11
All this may sound complicated, but it is easy to pick up as familiarity
grows.
8.11
The grid window
8.11
The finished tile is now ready to be stamped onto the grid. As the
pointer moves over the grid, it changes into the shape of a stamp. It is
simply a matter of stamping the tile onto the grid. The tiles are still
editable and can be coloured, rotated and reflected singly or in any
size groups that the user wishes. The background colour is also fully
controllable. While in ‘select’ mode, the pointer reverts to its usual
shape with the <select> and <adjust> buttons toggling the grid on and
off.
8.11
Using Reptile
8.11
My children (a fairly computer-literate bunch of 10 and 11 year olds)
thought this program was great. They used some of the enclosed examples
and soon had lovely coloured shapes filling up the grids. They have
access to a colour printer and were very pleased with the printed
results.
8.11
However, whilst using the prepared shapes was valuable enough, the real
test was when they tried to create their own. This took some time to get
to grips with, but with perseverance and plenty of encouragement from
the teacher, they soon became familiar with the program and were last
seen happily experimenting away.
8.11
Conclusions
8.11
At first, I felt that this program was not flexible, but a telephone
call to the author set my mind at rest. There are only three basic
shapes but, apparently, most patterns can be reproduced using these
three shapes; there is no facility to alter the line widths or patterns
and the drawing tool is limited in the number of points, but changes
could well be implemented in future versions; and, for some reason,
<delete> would not delete, although <ctrlx> did − apparently the author
did not errortrap the delete key. However, this will be resolved in the
release version, as will the fact that I managed to make the program
crash in drawing mode.
8.11
Another feature in the full release version should be a gridlock on the
tile window. There are no plans to include text, and it would be nice if
the link between tile and grid was dynamic i.e. any changes to the tile
was reflected in the grid. Maybe these can be added in the future.
8.11
Grids can be saved as drawfiles and exported to other programs − tiles
can be saved in Reptile format and used again. Twenty-four pre-drawn
grids are available and could be used by younger and less able children
to colour by computer or to print out and colour manually. Twenty-seven
predrawn tiles are also available to be used as the teacher/parent
wishes. The manual is easy to read and understand and contains a number
of ideas on using Reptile.
8.11
All in all, this program is great, with lots of possibilities for
developing it. The author assures me that further development is in the
pipeline. Even though I have used the program with older primary school
children, it could find a home in any secondary school where complex
mixing of shape and size would produce exciting and worthwhile results.
Highly recommended.
8.11
Outside the educational environment, I would recommend it to anyone
interested in mosaics or tessellation. Reptile costs £30 +VAT (primary)
or £60 +VAT (secondary) from KudlianSoft (or £33 and £66 respectively
through Archive) and this includes a site licence. u
8.11
8.11